Rails 数据库迁移

Rails 数据库迁移

ID:37655312

大小:141.42 KB

页数:23页

时间:2019-05-27

Rails 数据库迁移_第1页
Rails 数据库迁移_第2页
Rails 数据库迁移_第3页
Rails 数据库迁移_第4页
Rails 数据库迁移_第5页
资源描述:

《Rails 数据库迁移》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Rails数据库迁移(Migrations)数据库迁移(Migrations)提供了一些便利的方法让你有条理地修改数据库。虽然说直接编写SQL也能修改数据库,但是这样你不但必须通知其他的开发者去执行一样的步骤,而且你也得一直注意下次部署的时候和在正式上线的产品版服务器上面追踪并执行这些操作。ActiveRecord会自动追踪哪些Migrations已经执行过、哪些还没执行。所以,你只要更新你本地的代码然后执行 rakedb:migrate ,其他的就交给ActiveRecord,它会自己搞懂该跑哪些Migrations。还有,它也会自动更新db/schema.rb 

2、文件,让它与修改后的数据库结构同步。有了Migrations,你就可以用Ruby来写这些数据库变更。一件很棒的事情是Migration是独立于数据库系统的(和大多数ActiveRecord的功能一样),也就是说,你不用烦恼各种数据库的语法差异,像是 SELECT* 的各种写法之类的。(当然,如果要针对某个特定的数据库系统编写特定的功能的话,你也可以直接编写原始的SQL语句)。例如,你可以在开发阶段使用SQLite3,在正式上线阶段则使用MySQL,它会自动处理好两者间的语法细节。在这个指南中,你将会了解到:·用于创建migration的生成器·ActiveRecor

3、d所提供用于操纵数据库的方法·用于操纵migrations的Rake任务·Migrations跟数据库纲要文件(schema.rb)的关联1剖析迁移任务的构造在我们深入介绍migration的细节之前,我们先看下列例子,了解我们能怎么写迁移任务:classCreateProducts

4、t

5、      t.string:name      t.text:description       t.timestamps    end  end   defdow

6、n    drop_table:products  endend这个迁移任务建立了一张叫 products 的数据库表,这张表中包含一个名为 name 的string类型字段和一个名为 description 的text类型字段。与此同时,一个名为 id 的字段也会被添加,这个字段是默认添加,我们不需要另外请求。另外ActiveRecord所需要的时间戳(timestamp)字段(created_at和updated_at)也会被自动添加。而要取消这个任务只需简单地把这张表删除掉即可。数据迁移不仅可以胜任修改数据库架构,你还可以用它来修复数据库中的错误数据或者添加新

7、字段。classAddReceiveNewsletterToUsers

8、t

9、      t.boolean:receive_newsletter,:default=>false    end    User.update_all:receive_newsletter=>true  end   defdown    remove_column:users,:receive_newsletter  endend在迁移任务中使用Models的一些"警告":#usi

10、ng-models-in-your-migrations这个迁移为 users 表添加了一个 receive_newsletter 字段,并设定新的user创建时它的默认值为 false ,对于数据库中已存在的users我们使用User模型来把他们的这个标志位设为true。Rails3.1为数据迁移提供了 change 方法使它变得更精简。这个方法主要用于一些构造性的migrations(例如添加新字段或者新的表),它能知道怎么样迁移你的数据库并在你需要回滚的时候恢复回去而并不需要写一个分开的down方法。classCreateProducts

11、rd::Migration  defchange    create_table:productsdo

12、t

13、      t.string:name      t.text:description       t.timestamps    end  endend1.1Migrations也是类Migration是继承 ActiveRecord::Migration 的一个子类,它实现了两个方法: up (执行需要的改变)和 down (恢复所做的改变)ActiveRecord提供以下独立于数据库的方法,用来执行普通数据定义任务的方法:·add_column·ad

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。