У меня есть база sqlite3
в моем приложении rails
, у которого есть файл development.sqlite3
. Я хочу преобразовать базу данных в mysql
Вот шаги, которые я предпринимаю, но все же у меня проблемы:
gem 'seed_dump'
я добавляю и устанавливаю gem 'seed_dump'
чтобы добавить данные в мой seed.rb
(запустив rake db:seed:dump
), потому что мне действительно нужно перенести мои данные.
2.Используйте конфигурацию database.yml
настройки mysql
.
development:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
production:
adapter: mysql2
encoding: utf8
database: MyDB
username: root
password: ****
3.Run rails db:create
тогда rails db:schema:load
.
4. Затем загрузите данные из семян, запустив rake db:seed:dump
Проблема заключается в том, что многие данные многих отношений (которые имеют таблицу в схеме db) не могут быть импортированы в mysql из моего seed.rb.
Я хочу знать, что есть ли другой безопасный способ переноса моих данных из sqlite3
в mysql
вместо того, чтобы записывать их в seed.rb
а затем читать их?
Поскольку я искал другой способ решить проблему, я нашел то, что объявлено здесь. Я выполнил шаги, стоящие перед другой ошибкой mysql
: Data is too long for column summary
. Чтобы пропустить эту ошибку, я отключил mysql strict mode
подобный этому в database.yml
:
конфиг /database.yml
development:
adapter: mysql2
encoding: utf8
database: myDB
username: root
password: ****
host: localhost
strict: false
production:
adapter: mysql2
encoding: utf8
database: myDB
username: root
password: ****
host: localhost
strict: false
Это решение более понятно, чем использование gem 'seed_dump'
которое имеет проблемы с has and belongs to many
отношениям!
seed.rb
, то данные из таблицы соединений должны записываться при сохранении объектов, имеющих внешние ключи, в эту таблицу ... верно?