我想运行迁移以创建一个User表,该表从10000开始为user_id列计数。我想避免通过execute方法使用特定于数据库的语法,因为我的生产和开发服务器并不相同。

有没有办法做到这一点?

最佳答案

如果您需要以与数据库无关的方式进行此操作,那么,在迁移中创建10000个用户,然后执行“截断表用户”或仅删除ID
在postgres中,您可以重新定义负责生成这些ID的序列的起始编号。在MySQL中,您也可以执行此操作,但有所不同:“ALTER TABLE theTableInQuestion AUTO_INCREMENT = 1234”

当然,您可以将此功能添加到ActiveRecord::Migration类,并在特定于数据库的驱动程序中提供实现。

一切都取决于你想走多远:)

07-28 01:00
查看更多