Как mysqldump и нагрузка влияют на схему и миграцию рельсов? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть база данных mariaDB с приложением rails.

Я планирую сначала нормально настроить приложение rails, затем использовать его пользовательский интерфейс, чтобы сначала создать данные базы данных, а затем экспортировать эти данные с помощью mysqldump.

mysqldump -u username -p database_name > data-dump.sql

У меня вопрос: если я выполню миграцию позже, могу ли я загрузить дамп MySQL без проблем?

Например, если моя миграция удаляет столбец, я должен снова создать новую резервную копию базы данных, используя mysqldump?

И что мне нужно быть осторожным со схемой?

1 Ответ

0 голосов
/ 28 августа 2018

Когда вы делаете mysqldump, по умолчанию включены операторы создания таблицы. Они исключаются, только если вы передаете флаг --no-create-info. Поскольку ваши миграции являются всего лишь изменениями в таблицах, вы можете быть уверены, что при последующей загрузке данных к ним будут применены все ваши миграции до момента, когда ваша база данных будет выгружена.

Кроме того, при запуске миграций rails отслеживает, какие из них были запущены в таблице schema_migrations. Поэтому, если вы откатитесь к моменту времени, когда у вас было больше миграций, вы можете повторно запустить rake db: migrate, и будут запущены только те новые, поскольку все эти данные были частью вашей резервной копии.

...