Я создаю приложение поверх данных, которые у меня уже есть, я получил его от клиента в виде файла .mdb (MS Access). Он состоит из нескольких таблиц T1, T2, ..., TN.
Что я сделал до сих пор: преобразовал таблицы Access в CSV, создал мою таблицу Rails t1 благодаря сценарию, но идентификаторы неверны
Что я хочу сделать: создать таблицу Rails для каждой из таблиц от T1 до TN
Проблема: я не знаю, как избавиться от столбца идентификатора Rails по умолчанию, то есть автоинкремент
Детали:
У меня есть таблица T1 с атрибутами (t1_id, имя, адрес электронной почты, телефон)
Скажем, у меня есть три кортежа: (3, Foo, foo@g.com, 0000) (9, Bar, bar@g.com, 1111) (32, Baz, baz@g.com, 2222)
Идентификаторы, как они у меня, не являются аккуратной последовательностью 1, 2, 3 - в какой-то момент, должно быть, были удаления.
Я знаю, как заполнить мою таблицу Rails с помощью CSV, используя этот скрипт:
require 'csv'
CSV.foreach('./db/seeds/file.csv', headers: true) do |row|
p row #p = advanced toString
p T1.create(id: row['\xEF\xBB\xBFT1ID'], first_name: row['FirstName'], phone: row['Phone'], email: row['Email'])
end
Как вы заметили, мой CSV-заголовок немного странный, у меня там висит несколько символов юникода ...
В любом случае, моя модель следующая, взятая из schema.rb:
create_table "t1", :force => true do |t|
t.string "first_name"
t.string "phone"
t.string "email"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
После запуска скрипта моя таблица содержит следующие кортежи с неправильными идентификаторами:
(1, Foo, foo@g.com, 0000) (2, Bar, bar@g.com, 1111) (3, Baz, baz@g.com, 2222)
Как я могу получить правильные идентификаторы?
Thaaaanks!