Мы разрабатываем веб-сайт с поддержкой Doctrine, используя YAML для определения нашей схемы.Наша схема регулярно меняется (включая отношения fk), поэтому нам нужно сделать много:
Doctrine::generateModelsFromYaml(APPPATH . 'models/yaml', APPPATH . 'models', array('generateTableClasses' => true));
Doctrine::dropDatabases();
Doctrine::createDatabases();
Doctrine::createTablesFromModels();
Мы хотели бы сохранить существующие данные и сохранить их в заново созданной базе данных.Поэтому я копирую данные во временную базу данных до того, как основная база данных будет удалена.
Как получить данные из «копии БД старой схемы» в «БД новой схемы»? (новая схема содержит только НОВЫЕ столбцы, НИКАКИЕ КОЛОННЫ НЕ УДАЛЕНЫ)
ПРИМЕЧАНИЕ:
Это, очевидно, не работает, потому что количество столбцов не совпадает.
SELECT * FROM copy.Table INTO newscheme.Table
Это, очевидно, работает, однако это отнимает слишком много временинаписать для каждой таблицы:
SELECT old.col, old.col2, old.col3,'somenewdefaultvalue' FROM copy.Table as old INTO newscheme.Table