Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在使用时间戳生成一些迁移之后,我可以阻止Rails使用时间戳前缀进行迁移吗?_Ruby On Rails_Migration - Fatal编程技术网

Ruby on rails 在使用时间戳生成一些迁移之后,我可以阻止Rails使用时间戳前缀进行迁移吗?

Ruby on rails 在使用时间戳生成一些迁移之后,我可以阻止Rails使用时间戳前缀进行迁移吗?,ruby-on-rails,migration,Ruby On Rails,Migration,在我的migrate文件夹中,大约有一百个左右带有数字前缀的迁移,然后大约有一百个左右带有时间戳前缀的迁移,所以我猜Rails版本在某个时候被更新了。现在我想阻止Rails使用时间戳前缀,因为我更喜欢数字前缀。实现这一目标的最佳方式是什么,或者说这是否可能?一种方法可能是按照前缀的排序顺序手动重命名前缀,然后转到dev、staging和production数据库,用新的数字更改时间戳,但这种方法看起来很混乱。是否有其他方法可以实现这一点?如果您有一个团队,或者如果您想分支并从事其他工作,则时间戳

在我的migrate文件夹中,大约有一百个左右带有数字前缀的迁移,然后大约有一百个左右带有时间戳前缀的迁移,所以我猜Rails版本在某个时候被更新了。现在我想阻止Rails使用时间戳前缀,因为我更喜欢数字前缀。实现这一目标的最佳方式是什么,或者说这是否可能?一种方法可能是按照前缀的排序顺序手动重命名前缀,然后转到dev、staging和production数据库,用新的数字更改时间戳,但这种方法看起来很混乱。是否有其他方法可以实现这一点?

如果您有一个团队,或者如果您想分支并从事其他工作,则时间戳迁移非常棒。但是,您可以使用配置设置更改迁移的命名方式

#environment.rb
config.active_record.timestamped_migrations = false
还有。。。。我维护的lazy_developer插件的任务是将所有迁移文件转换为全新的迁移。我不保证它会为你工作,但我已经在一些项目中使用过它,以实现我想要的目标

它基本上接受schema.rb并从中进行新的迁移。它也尝试处理您的索引,但它确实为迁移号使用时间戳,将它创建的新迁移设置为与上次迁移相同的名称,以便正确维护数据库的版本控制

同样,不能保证这会起作用,所以首先备份或分支您的项目

如果我是你,我就别管这事了。有迁移名称是惯例,实际上,您最多只需要使用一次。如果要部署到新服务器或将项目签出到新机器,则应该真正使用rake db:schema:load,因为它要快得多。迁移用于开发和增量数据库更改。正如我所说,时间戳迁移适用于多个用户