Я развертываю приложение rails для heroku, которое использует PostgreSQL в качестве исходного. В моей миграции базы данных я обычно устанавливаю поле идентификатора для вещей, которым нравится отчеты и т. Д., По меньшей мере 1000, большинство клиентов, похоже, не любят начинать с 1.Как установить начальную точку для столбца первичного ключа (идентификатора) в Postgres через миграцию рельсов
Обычно я использую mysql, и я просто добавляю sql-специфику после моей таблицы создание:
def self.up
create_table :reports do |t|
t.references :something
...
end
execute("ALTER TABLE reports AUTO_INCREMENT = 1000;")
end
кто-нибудь знает, как я могу получения идеальной то же самое для PostgreSQL, в идеале я хотел бы миграцию создания таблицы себя так, что это не БД специфичны.
Я думаю, глупый способ достижения моей цели состоял в том, чтобы создать и удалить 999 записей в цикле, ой.
Спасибо и за обновление, я просто снесены дамп БД, похоже, это одна: CREATE SEQUENCE reports_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; – tsdbrown
Да, вы можете установить start на 'CREATE SEQUENCE', в этом случае вы просто добавляете' START 1000' в инструкцию. Но для его изменения позже вам понадобится команда «ALTER», а не 'CREATE'. –
Ха-ха, спасибо, я не пытался использовать команду CREATE, просто выделив, что «было» использовано для генерации последовательности, это SQL, сгенерированный из файла миграции. Я использовал ALTER и RESTART, как вы упомянули, и сработало обаяние. Если я собираюсь использовать Postgres в производственном приложении, я обязательно прочитаю об этом. – tsdbrown