Перенос данных в Ruby On Rails из sqlite3 в mysql в отношении многих ко многим

У меня есть sqlite3 База данных в моем rails приложение, которое имеет development.sqlite3 файл. Я хочу преобразовать базу данных в mysqlВот шаги, которые я делаю, но все же у меня есть проблемы:

1. Сначала я добавляю и устанавливаю 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

Проблема в том, что мои данные отношения ко многим (у которых есть таблица в схеме БД) не могут быть импортированы в mysql из моего seed.rb.

Я хочу знать, есть ли другой безопасный способ перенести мои данные из sqlite3 в mysql вместо того, чтобы записать их в seed.rb а потом их читать?

1 ответ

Решение

Когда я искал другой способ решения проблемы, я нашел то, что здесь заявлено. Я следовал за шагами, стоящими перед другой ошибкой 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 связи!

Другие вопросы по тегам