- 浏览: 11598 次
- 性别:
- 来自: 上海
最近访客 更多访客>>
最新评论
-
java_struts:
中国的保险产品太多,太复杂
寿险产品分析 -
bluemusic:
说得很清楚,能否说下投连险方面的相关知识?
寿险产品分析 -
苹果侠:
Omnibus 写道小錯字
:forece
應為
:for ...
Rails中的Migrations(三) -
Omnibus:
小錯字
:forece
應為
:force
Rails中的Migrations(三)
文章列表
Data Migrations:
之前写到过,所有的migrations文件都是有ruby代码组成,而且migration中的ruby代码可以和Rails中的其他部分代码进行交互,特别是model类。因此使用migration可以很方便的完成各种数据迁移和操作开发环境数据库内的数据。一下展示了两种截然不同的data migration的应用场景:载入开发环境数据和在不用的数据版本间切换。
Loading Data with Migrations:
在实际开发中,我们常常需要向数据库中插入大量的基础数据,例如各种lookup
table的记录(即编码表),产品目录等。在以往的开发过程中,开发人 ...
定义索引:
在Rails中定义索引也非常的简单。例如在应用中发现,使用name字段对orders表进行检索时,速度较慢,便可是针对name字段增加一个索引,以增加检索速度。 请看下面的代码:
Class AddCustomerNameIndexToOrders < ActiveRecord::Migration
def self.up
add_index :orders, :name
end
def self.down
remove_index :orders, :name
end
end
这段代码会对orders表的name字段添加一个索引,如果给a ...
Managing Tables:
在Rails的Migrations中可以执行一些DDL的操作,例如新增,删除表等。先来看一段新增表的操作代码:
class CreateOrderHistories < ActiveRecord::Migration
def self.up
create_table :order_histories do |t|
t.integer :order_id, :null => false
t.text :notes
t.timestamps
end
def self.down
...
Managing Tables:
在Rails的Migrations中可以执行一些DDL的操作,例如新增,删除表等。先来看一段新增表的操作代码:
class CreateOrderHistories < ActiveRecord::Migration
def self.up
create_table :order_histories do |t|
t.integer :order_id, :null => false
t.text :notes
t.timestamps
end
def self.down
...
刨析Migrations:
之前提到过,migrate其实就是rb代码,
因此每个migrate文件都包含一个rb
class.这个class是ActiveRecord::Migration的子类,在这个类中至少应该包含两个类方法:up和down.up方法会执
行相应的更改数据库结构的方法,而down方法则会undo up中的改动.
增加字段:
当需要对某张表添加某个字段时,可以使用ActiveRecord::Migration中的add_column方法,典型的add_column方法如以下这些实例:
add_column :orders, :attn, :string, :limit ...
定期寿险,生死两全,和终生寿险是个险寿险的三种主要产品类型。顾名思意,这三种产品的保障期限就是不同的,主要区别如下:
定期寿险的保障期限一般为固定年度,或是保障至某个固定年龄。
生死两全寿险的保障期限和 ...
Rails中的DB Migration是通过db/migrate下的rb脚本来完成的。这些migrate的脚本可以通过手动来维护,但是推荐的方法应该让Rails自己来生成相应的rb文件。在Rails中有两种方式来生成:
1. 使用generator生成model时,同时生成对应这个model的migrate文件。例如:ruby script/generate model discount。(如果使用--skip-migration的选项则不会生成相应的migrate文件)
2. 直接使用generator来生成migrate文件,例如:ruby script/generate mi ...