2015-12-30 4 views
5

Я искал почти везде, но я ничего не смог найти.Переименовать имя таблицы с миграциями Doctrine

Есть ли команда или процедура для изменения имени таблицы (так внутри аннотации доктрины) без потери данных?

В принципе, то, что будет производить что-то вроде

RENAME TABLE old_table TO new_table; 

или

ALTER TABLE old_table RENAME new_table; 

команд MySQL, взятую из here

Должен ли я писать вручную файл миграции с doctrine:migrations:generate?

+0

Какую систему баз данных используете? – StoryTeller

+0

@StoryTeller MySQL, но я полагаю, что должен существовать «универсальный» метод – DonCallisto

ответ

6
  1. Изменить имя таблицы для данного объекта.

    /** @Entity @Table(name="new_table_name") */ 
    class MyEntity { ... } 
    
  2. Создать новую миграцию.

  3. Стереть содержимое up() и down() методов и заменить их на пользовательские SQL (ALTER TABLE ... RENAME TO ...).

Имейте в виду, что генератор миграции предназначен как утилита/полуавтоматический инструмент.

+0

Да, так, в принципе, я могу достичь того же путем запуска 'php app/console doctrine: migrations: generate' (что, действительно, ve done 'до сих пор) – DonCallisto

+0

Да, это правильный подход. ;) – Crozin

Смежные вопросы