При переносе данных в rails из mysql в postgres с использованием pgloader поля create_at и updated_at для каждой таблицы не согласованы - PullRequest
0 голосов
/ 10 мая 2019

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

...