Бит моего приложения находится в MYSQL, и я пытаюсь реализовать систему Multi-tenant с использованием Apartment Gem. Требование драгоценного камня заключается в том, что у вас должен быть POSTGRES Db. Итак, как я могу перенести мой существующий MYSQL Db в POSTGRES.MIgration от MYSQL до POSTGRES
ответ
Я недавно сделал это в одном из своих проектов. Миграция данных от mysql
до pg
немного сложна. Для этого вам придется тщательно получить все записи mysql db
со всего rails models
, hashify данные, а затем импортировать их в pg
. Позволяет разделить всю процедуру в шагах, которые:
1 Установите соединение с mysql db
ActiveRecord::Base.establish_connection(:adapter => "mysql", :host => "host", :username => "username", :password => "password", :database => "db_name")
2- Получить mysql
строки из всех моделей и hashify
["Model1", "Model2", "Model3", "Model4", "Model5"].each do |modal|
eval("@#{modal.downcase} = #{modal}.all.collect{ |p| p.to_dh }")
end
3- Теперь сделайте соединение к вашему текущему дБ, который является pg
ActiveRecord::Base.establish_connection(:development)
4 Переключение на новый tenant
, что вы хотите export
данных
Apartment::Tenant.switch!('tenant_name')
5- Создание записей в rails models
, которые мигрировали в pg
из hashified mysql
данных
["Model1", "Model2", "Model3", "Model4", "Model5"].each do |modal|
eval("@#{modal.downcase}.each{ |p| #{modal}.create(p[:attributes], :without_protection => true) rescue p[:id]}")
end
6- Теперь вы должны сбросить идентификаторы, записи могут быть созданы рельсами из предыдущей записи, а не с 1.
["Model1", "Model2", "Model3", "Model4", "Model5"].each do |modal|
ActiveRecord::Base.connection.reset_pk_sequence!(eval("#{modal}.table_name"))
end
Там вы идете. Теперь у вас есть все ваши данные mysql
, перенесенные в ваш pg
database
.
- 1. База данных Rails от MySQL до Postgres
- 2. Laravel Migration Postgres error
- 3. От Oracle до Postgres
- 4. Joomla Migration от 1.5 до 2.5
- 5. Jdeveloper Migration от 10g до 12C
- 6. wildfly migration от AS 7 до WF10
- 7. Rails Change Column Type Migration для MySQL и Postgres
- 8. Копирование От csv до postgres
- 9. Oracle to Postgres, MySQL или MS Access Migration
- 10. Mysql large db migration
- 11. MSSQL и MYSQL Migration
- 12. DashDB to MySQL Migration
- 13. MySQL to Oracle Migration
- 14. Ошибка MySQL DB Migration
- 15. mySQL to SQL Migration
- 16. Ruby MySQL Migration Script
- 17. Перемещение от Influx до Postgres, нужны советы
- 18. Обновление Heroku Postgres от разработчика до базового
- 19. Postgres: Уникальная ссылка от A до B
- 20. Postgres Upgrade Heroku от 9.2.4 до 9.3
- 21. Устранение виртуальных столбцов от oracle до postgres
- 22. значения регистрации от arduino до postgres db
- 23. SQL Server CE От 3,5 до SQL Server Migration
- 24. Swift От 2 до 3 Migration Core Data NSManagedObject Класс
- 25. URL Migration in cloudfoundry от V1 до V2
- 26. От Array до MySQL
- 27. MSSQL TO MySQL database Migration
- 28. Migration WSO API Manager 1.4.0 до 1.8.0
- 29. MySQL Migration Toolkit & SQL Express
- 30. ASP Access to MySQL Migration
Квартира не требует использования Postgres! он поддерживает sqlite, mysql и postgres просто отлично – Nimir
Резервное копирование всего, прежде чем вы начнете. Я бы использовал инструменты для выполнения этой работы. MySQL Workbench - экспорт функций данных и PG Admin III - импорт данных. Читайте о создании базы данных pg с помощью schema.rb. Создайте новую базу данных Postgres с помощью rake db: create - затем импортируйте данные MySQL из вашего дампа с помощью PG Admin III. Это может произойти или не пойти гладко в первый раз. Я не ставил это как ответ, потому что это совет на основе инструментария для преобразования. Используя это, вы можете проверять результаты каждого шага, вместо того, чтобы одновременно смять все вместе. – Elvn