我想确认以下分析是正确的:在Ruby on Rails中使用迁移
我正在RoR中构建Web应用程序。我为我的postgres数据库设计了一个数据结构(大约有70个表格;这个设计可能需要在开发过程中进行更改和添加,以反映Rails的处理方式。身份验证,我会擦洗他们,并替换任何RA要求。)。
我有一个shell脚本,它调用一系列.sql文件来填充表格和初始数据的空数据库(例如,Towns获得预填充的城镇)以及测试数据(例如,公司获得一些虚拟公司,所以我有数据可以玩)。
例如:
CREATE TABLE towns (
id integer PRIMARY KEY DEFAULT nextval ('towns_seq'),
county_id integer REFERENCES counties ON DELETE RESTRICT ON UPDATE CASCADE,
country_id integer REFERENCES countries ON DELETE RESTRICT ON UPDATE CASCADE NOT NULL,
name text NOT NULL UNIQUE
);
命题0:数据持续时间超过应用程序长,所以我深信,我想在数据库级别上强制实施参照完整性,以及在我的回报率模型验证,尽管缺乏干燥等功效。
建议1:如果我用Migrations替换脚本和sql文件,目前不可能告诉我的Postgres数据库关于当前在迁移代码中的SQL DDL文件中设置的外键和其他约束。
命题2:迁移的优势在于对模式的更改与RoR模型代码一起版本化。但是,如果我将脚本和.sql文件保存在railsapp/db中,我可以轻松地对它们进行版本化。命题3:鉴于迁移缺乏我想要的功能,并提供我可以复制的好处,所以我没有理由考虑使用它们。所以我应该 - 在脚本/生成模型时间中进行跳转。
我的问题:如果命题0被接受,命题1,2,3是否为真,为什么?
谢谢!
代码格式化:只需在每个代码行前使用4个空格。 StackOverflow会将其视为预格式化的块(包括缩进),并且大部分时间都会为其选择正确的语法突出显示。 – webmat 2008-09-23 12:46:40
在那里,@webmat。 – 2008-10-08 13:17:26
执行数据库设计时需要考虑的事项https://cbabhusal.wordpress.com/2015/08/16/ruby-on-rails-order-of-migration-generator-matters-in-initial-design/ – illusionist 2015-09-04 03:03:50