Rails: отсутствующие индексы при преобразовании файла sqlite в postgres db с помощью pgloader
Для моего приложения rails я конвертирую локальный файл sqlite3 в базу данных postgres с помощью pgloader.
Для этого я создал базу данных postgres
createdb my_database_development
и я создаю командный файл pgload
load database
from 'db/production.sqlite3'
into postgresql:///my_database_development
with include drop, create tables, create indexes, reset sequences
set work_mem to '16MB', maintenance_work_mem to '512 MB';
Теперь загрузка файла sqlite в базу данных postgres работает, и я не думаю, что у меня есть какие-либо ошибки. Все таблицы и записи копируются, но когда я смотрю в своем приложении rails, ни одна из записей не имеет индекса (или идентификатора). Вот результат загрузки файла sqlite в базу данных
simon (master *) Blog-database $ pgloader db/development.sqlite3 postgresql:///my_database_development
2016-08-06T13:57:41.201000+03:00 LOG Main logs in '/tmp/pgloader/pgloader.log'
2016-08-06T13:57:41.222000+03:00 LOG Data errors in '/tmp/pgloader/'
2016-08-06T13:57:41.425000+03:00 WARNING Postgres warning: table "schema_migrations" does not exist, skipping
2016-08-06T13:57:41.626000+03:00 WARNING Postgres warning: table "comments" does not exist, skipping
2016-08-06T13:57:41.627000+03:00 WARNING Postgres warning: table "users" does not exist, skipping
2016-08-06T13:57:41.627000+03:00 WARNING Postgres warning: table "pictures" does not exist, skipping
2016-08-06T13:57:41.828000+03:00 WARNING Postgres warning: table "posts" does not exist, skipping
table name read imported errors time
---------------------- --------- --------- --------- --------------
fetch 0 0 0 0.001s
fetch meta data 8 8 0 0.050s
create, truncate 0 0 0 0.343s
---------------------- --------- --------- --------- --------------
schema_migrations 12 12 0 0.068s
comments 23 23 0 0.014s
users 3 3 0 0.064s
pictures 24 24 0 0.069s
posts 4 4 0 0.055s
index build completion 0 0 0 0.014s
---------------------- --------- --------- --------- --------------
Create Indexes 4 4 0 0.312s
Reset Sequences 0 0 0 0.064s
---------------------- --------- --------- --------- --------------
Total streaming time 66 66 0 0.742s
Логи pgloader выглядят так
simon pgloader $ cat pgloader.log
2016-08-06T14:23:53.146000+03:00 NOTICE Starting pgloader, log system is ready.
2016-08-06T14:23:53.223000+03:00 LOG Main logs in 'NIL'
2016-08-06T14:23:53.241000+03:00 LOG Data errors in '/tmp/pgloader/'
2016-08-06T14:23:53.241000+03:00 LOG Parsing commands from file #P"/home/simon/Blog-database/sqlite.loader"
2016-08-06T14:23:53.442000+03:00 NOTICE DROP then CREATE TABLES
2016-08-06T14:23:53.443000+03:00 WARNING Postgres warning: table "schema_migrations" does not exist, skipping
2016-08-06T14:23:53.644000+03:00 WARNING Postgres warning: table "comments" does not exist, skipping
2016-08-06T14:23:53.644000+03:00 WARNING Postgres warning: table "users" does not exist, skipping
2016-08-06T14:23:53.645000+03:00 WARNING Postgres warning: table "pictures" does not exist, skipping
2016-08-06T14:23:53.645000+03:00 WARNING Postgres warning: table "posts" does not exist, skipping
2016-08-06T14:23:53.845000+03:00 NOTICE COPY schema_migrations
2016-08-06T14:23:53.846000+03:00 NOTICE CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
2016-08-06T14:23:53.846000+03:00 NOTICE COPY comments
2016-08-06T14:23:53.847000+03:00 NOTICE CREATE INDEX "index_comments_on_post_id" ON "comments" ("post_id")
2016-08-06T14:23:53.847000+03:00 NOTICE COPY users
2016-08-06T14:23:53.847000+03:00 NOTICE CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email")
2016-08-06T14:23:53.847000+03:00 NOTICE CREATE UNIQUE INDEX "index_users_on_reset_password_token" ON "users" ("reset_password_token")
2016-08-06T14:23:53.848000+03:00 NOTICE COPY pictures
2016-08-06T14:23:53.848000+03:00 NOTICE COPY posts
2016-08-06T14:23:54.049000+03:00 NOTICE Reset sequences
Это проблема рельсов? Может быть, вы не можете просто скопировать идентификатор, потому что он ведет себя как защищенный атрибут?