Как Вы присваиваете версию своей схеме базы данных? [закрытый]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

125
задан Joe Phillips 26 January 2012 в 14:39
поделиться

11 ответов

См.

, там система управления версиями для изменений структуры базы данных?

, Как я присваиваю версию своей базе данных SQL MS в SVN?

и статья

Jeff Получают Вашу Базу данных При Управлении версиями

, я чувствую Вашу боль, и мне жаль, что не было лучшего ответа. Это могло бы быть ближе к тому, что Вы искали.

Механизмы для отслеживания изменений схемы DB

Обычно, который я чувствую, нет никакого соответствующего, принятого решения этого, и я прокручиваю свое собственное в этой области.

59
ответ дан 24 November 2019 в 01:02
поделиться

Я интересуюсь этой темой также.

существуют некоторые обсуждения этой темы в Django wiki.

Интересно, это похоже , CakePHP имеет управление версиями схемы, встроенное использование всего cake schema generate команда.

1
ответ дан 24 November 2019 в 01:02
поделиться

Я использую база данных Firebird для большей части разработки, и я использую административное средство FlameRobin для нее. Это имеет хорошую опцию зарегистрировать все изменения. Это может зарегистрировать все в один большой файл, или один файл для каждой базы данных изменяется. Я использую эту вторую опцию, и затем я храню каждый сценарий в программном обеспечении управления версиями - ранее я использовал Подверсию, теперь я использую Мерзавца.

я предполагаю, что можно найти некоторый инструмент MySQL, который имеет ту же функцию входа как FlameRobin, делает для Firebird.

В одной из таблиц базы данных, я храню номер версии структуры базы данных, таким образом, я могу обновить любую базу данных легко. Я также записал простой Сценарий PHP, который выполняет те сценарии SQL один за другим на любой целевой базе данных (путь к базе данных, и имя пользователя/пароль предоставляются на командной строке).

существует также опция зарегистрироваться, весь DML (вставьте, обновление удаляют), операторы, и я активирую это при изменении некоторых данных 'по умолчанию', которые содержит каждая база данных.

я записал хороший отчет о том, как я делаю все это подробно. Можно скачать статью в формате pdf наряду с демонстрационными Сценариями PHP от здесь .

1
ответ дан 24 November 2019 в 01:02
поделиться

Я также разработал ряд Сценариев PHP, где разработчики могут отправить свои deltasql сценарии центральному репозиторию.

В одной из таблиц базы данных (названный TBSYNCHRONIZE), я храню номер версии последнего выполняемого сценария, таким образом, я могу обновить любую базу данных легко при помощи веб-интерфейса или клиента, разработанного нарочно для Eclipse.

веб-интерфейс позволяет управлять несколькими проектами. Это поддерживает также базу данных "ответвления".

можно протестировать приложение в http://www.gpu-grid.net/deltasql (если Вы входите в систему как администратор с паролем testdbsync). Приложение является открытым исходным кодом и может быть загружено здесь: http://sourceforge.net/projects/deltasql

deltasql используется продуктивно в Швейцарии и Индии, и популярен в Японии.

1
ответ дан 24 November 2019 в 01:02
поделиться

Я не для сигналения моего собственного рога, но я разработал внутреннее веб-приложение, чтобы отследить изменения в схемах базы данных и создать имеющие версию сценарии обновления.

Этот инструмент называют Бразилия и является теперь открытым исходным кодом в соответствии с лицензией MIT. Бразилия рубиновая / рубин на базирующихся направляющих и поддерживает развертывание изменения на любой базе данных что поддержки Ruby DBI (MySQL, ODBC, Oracle, Пост-ГРЭС, SQLite).

Поддержка помещения сценариев обновления в управлении версиями планируется.

2
ответ дан 24 November 2019 в 01:02
поделиться

Вы не упоминали, который RDBMS Вы используете, но если это - SQL Server MS, Красный Логический элемент , SQL Выдерживает сравнение , было необходимо для нас в создании дельт между сценариями создания объекта.

2
ответ дан 24 November 2019 в 01:02
поделиться

Я не управляю дельтами. Я вношу изменения в основную базу данных и имею инструмент, который создает XML базирующийся сценарий сборки на основе основной базы данных.

, Когда это прибывает время для обновления существующей базы данных, у меня есть программа, которая использует XML базирующийся сценарий сборки для создания новой базы данных и пустых таблиц. Я затем копирую данные из старой базы данных с помощью INSERT INTO x ВЫБОР ИЗ y и затем применяю все индексы, ограничения и триггеры.

таблицы New, новые столбцы, удалили столбцы, все обрабатываются автоматически и с несколькими небольшими приемами для корректировки стандартной программы копии, я могу обработать столбец, переименовывает, изменения типа столбца и другие основные рефакторинги.

я не рекомендовал бы это решение на базе данных с огромным объемом данных, но я регулярно обновляю базу данных, которая составляет более чем 1 ГБ с 400 таблицами.

2
ответ дан 24 November 2019 в 01:02
поделиться

Вы могли бы смотреть на другого, подобный поток: , Как я присваиваю версию своей базе данных SQL MS в SVN? .

4
ответ дан 24 November 2019 в 01:02
поделиться

Мы экспортируем данные в мобильный формат (использующий наш набор инструментальных средств), затем импортируя его к новой схеме. никакая потребность в дельте SQL. Наиболее рекомендуемый.

1
ответ дан 24 November 2019 в 01:02
поделиться

http://bitbucket.org/idler/mmp - инструмент управления версиями схемы для mysql, написанный на PHP

2
ответ дан 24 November 2019 в 01:02
поделиться

Несколько месяцев назад я искал инструмент для версионирования схемы MySQL. Я нашел много полезных инструментов, таких как Doctrine migration, RoR migration, некоторые инструменты, написанные на Java и Python.

Но ни один из них не удовлетворял моим требованиям.

Мои требования:

  1. Никаких требований, кроме PHP и MySQL
  2. Никаких файлов конфигурации схемы, как schema.yml в Doctrine
  3. Возможность читать текущую схему из соединения и создавать новый скрипт миграции, чем представлять идентичную схему в других установках приложения.

Я начал писать свой инструмент миграции, и сегодня у меня есть бета-версия.

Пожалуйста, попробуйте ее, если вам интересна эта тема. Пожалуйста, присылайте мне будущие запросы и сообщения об ошибках.

Исходный код: bitbucket.org/idler/mmp/src Обзор на английском языке: bitbucket.org/idler/mmp/wiki/Home Обзор на русском: antonoff.info/development/mysql-migration-with-php-project

1
ответ дан 24 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: