小编典典

如何通过Rails迁移为Postgres中的主键(ID)列设置起点

sql

我正在将rails应用程序部署到使用PostgreSQL作为后端的heroku。在我的数据库迁移中,我通常将诸如报告等之类的ID字段设置为至少1000,大多数客户端似乎不喜欢从1开始。

通常我使用mysql,在创建表后仅添加一个特定于sql的语句:

def self.up
    create_table :reports do |t|
       t.references :something
       ...
    end
    execute("ALTER TABLE reports AUTO_INCREMENT = 1000;")
end

有人知道我可以为PostgreSQL实现同样的功能吗,理想情况下,我希望迁移能够构建表本身,而不是特定于数据库。

我猜想达到目标的一种愚蠢的方法是在循环中创建和删除999条记录,哎呀。


阅读 161

收藏
2021-03-17

共1个答案

小编典典

不知道红宝石和铁路部分,但您正在谈论的查询是

ALTER SEQUENCE reports_something_seq RESTART 1000;

您将需要在表中查找序列名称和PostgreSQL文档,以进行有关此问题的常规教育;-)

2021-03-17