技术开发 频道

DB2与Ruby on Rails入门


步骤 2:与文档相关的附加属性

    在创建 DOCUMENTS 表之后,假设您决定存储关于每个文档的附加信息,例如操作系统平台、上传时间和最近更改时间。产生的 DOCUMENTS 表应该包含以下列(新添加的列用粗体标示)。
表 3. DOCUMENTS 表中的列和描述

列名数据类型描述
ID Integer 主键
Name VARCHAR 文档的名称
Size Integer 文件大小
Data BLOB 以二进制模式存储的文件,最大 2 M
Content_type VARCHAR 文档类型,包括:.doc、.ppt、.pdf、.sw、.exe、.a、.so、.gif、.jpeg、.mov、.avi、.mpeg、.bmp 等
Created_at TIMESTAMP 文件被上传的时间(见注 9
Updated_at TIMESTAMP 文档最近更新时间戳(见注 9
Platform VARCHAR 特定于文件平台的信息


然后生成第二个迁移,以便将这些属性添加到 DOCUMENTS 表中:

a) 运行ruby script/generate migration add_docs_attributes

这样会生成 db/migrate/002_add_docs_attributes.rb 文件。

单 10. 创建第二个迁移,以便将列添加到 DOCUMENTS 表中

D:\rails\teamroom>ruby script/generate migration add_docs_attributes
            exists  db/migrate
            create  db/migrate/002_add_docs_attributes.rb


b) 像下面这样编辑 002_add_docs_attributes.rb:
清单 11. 查询 SCHEMA_INFO 表

class AddDocsAttributes < ActiveRecord::Migration
            def self.up
            add_column :documents, :created_at, :timestamp
            add_column :documents, :updated_at, :timestamp
            add_column :documents, :platform,   :string,    :limit => 10
            end
            def self.down
            remove_column :documents, :created_at
            remove_column :documents, :updated_at
            remove_column :documents, :platform. end
            end

c) 同样,发出rake db:migrate来执行第二个迁移。

清单 12. 运行第二个迁移,将附加列添加到 DOCUMENTS 表中
D:\rails\teamroom>rake db:migrate
            (in D:/rails/teamroom)
            == AddDocsAttributes: migrating ===============================================
            -- add_column(:documents, :created_at, :timestamp)
            -> 0.0500s
            -- add_column(:documents, :updated_at, :timestamp)
            -> 0.0100s
            -- add_column(:documents, :platform, :string, {:limit=>10})
            -> 0.0000s
            == AddDocsAttributes: migrated (0.0600s) ======================================
0
相关文章