我有一个名为users的表,像往常一样所有的id 自动递增。 这是迁移:
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :name
...............
t.timestamps
end
end
现在我有了新的要求 生成的用户ID应该以1000开头。我见过一些 像this one这样的链接, 但在这里我使用sqlite3进行开发,使用mysql进行生产。 我该如何修改表格? 是否有可能在模型方面做任何事情? 请帮忙。
答案 0 :(得分:1)
@RSB是正确的,您应该考虑将开发数据库更改为MySQL以保持一致性,但如果您想保留当前的设置,那么您只能在生产环境中运行此迁移,如下所示:
class ChangeStartingIdForUsers < ActiveRecord::Migration
def self.up
if Rails.env.production?
execute "ALTER TABLE users AUTO_INCREMENT = 10000;"
end
end
end
答案 1 :(得分:1)
您需要解决的第一件事是将开发数据库更改为MySQL。开发和生产数据库应始终属于同一类型。
其次,您可以将其添加到迁移文件中以解决实际问题。
execute "ALTER TABLE users AUTO_INCREMENT = 1000;"
希望有所帮助!