Я использовал pgloader для преобразования базы данных mysql в базу данных postgres.База данных mysql содержит действительные данные для полей созданного и обновленного в каждой таблице, в то время как база данных postgres содержит противоречивые данные для полей созданного и обновленного.Я хочу импортировать данные без каких-либо манипуляций в базу данных mysql.
Я попытался изменить код в контроллере и представлениях, чтобы получить желаемый вывод, но я думаю, что это должно быть целесообразно, чтобы изменить данныехранится в базе данных вместо использования условий и добавления кода в контроллер и представления.
Я использовал
rails db:create
rails db:migrate
для создания базы данных postgres.Мой database.yml выглядит так:
default: &default
adapter: postgresql
# pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
# timeout: 5000
# port: 5432
username: postgres_username
password: postgres_password
host: 'localhost'
development:
<<: *default
database: tech_login_development_mysql
encoding: utf8
pool: 50
test:
<<: *default
encoding: utf8
database: tech_login_development_mysql
pool: 5
production:
<<: *default
encoding: utf8
database: tech_login_development_mysql
pool: 10
Итак, теперь база данных tech_login_development_mysql создана и все миграции выполнены.После создания структуры базы данных postgres я использовал pgloader для загрузки импортированных данных mysql.Я создал файл с именем database_data.load, и его код указан ниже:
LOAD DATABASE
FROM mysql://mysql_username:mysql_password@localhost/tech_login_development_mysql
INTO postgresql://postgres_username:postgres_password@localhost/tech_login_development_mysql
ALTER SCHEMA 'tech_login_development_mysql' RENAME TO 'public';
После создания вышеуказанного файла я выполнил команду:
pgloader database_data.load
для загрузки данных в tech_login_development_mysqlбаза данных
Существует таблица журнала - это мой проект, чьи поля create_at и updated_at во вновь созданной базе данных postgres не совпадают с базой данных mysql.Когда я запустил:
Log.find(40124).created_at
Фактический результат:
Tue, 03 Apr 2018 08:10:04 IST +05:30
Ожидаемый результат:
Tue, 03 Apr 2018 13:40:04 IST +05:30
Таким образом, существует проблема с часовым поясом при переносе данных из mysqlв postgres, но я не могу найти никакого решения.