zoukankan      html  css  js  c++  java
  • rails学习笔记(4)

           rails里集成了rake工具,它是个类似于java下的ant的工具,可以用它来批量完成一些“任务”。其中之一就是可以用来做数据库的迁移工作。在rails里,数据库的操作可以不通过直接操作数据库完成,而是使用rails的迁移功能,它使用一种特殊的语言:DSL,使用DSL可以做到数据库中心,它并不直接使用sql语言,而是使用自己的DSL语言描述需要的数据库操作,然后不同数据库在rails中安装不同的驱动程序,将不同数据库的操作,通过驱动程序去转化DSL语言,从而做到数据库中心。

            DSL语言是放在迁移文件中的,在用generate model或者generate migration的时候,会自动生成迁移文件,它在db/migrate目录下。每个迁移都必须实现self.up和self.down这两个方法(方法名会自动生成)。

            DSL常用的语句有create_table(table_name,options)、column(column_name,type,options)、add_column(table_name,column_name,type,options),drop_table(table_name)等。如:

    ========================================

    class CreateAuthors < ActiveRecord::Migration
    def self.up
        create_table :authors do |t|
          t.column :first_name, :string
          t.column :last_name, :string
          t.timestamps
        end
    end

    def self.down
        drop_table :authors
    end
    end

    ========================================

    运行迁移动作,是通过rake db:migrate实现的。但它默认情况下是针对开发环境的,如果要改变环境,需要用到RAILS_ENV,如:

    ========================

    RAILS_ENV=production rake db:migrate

    ========================

    用rake生成的数据库,会生产指定的新数据表,同时还会生成一个schema_info数据表,这个表只有一个字段,用以记录当前数据库架构的迁移版本号。指定的新数据表中,除了我们指定的字段,还会自动生成id字段,如果不希望自动创建id字段,可以给create_table加上:id => false选项。另外还会自动生成created_at和updated_at字段。

  • 相关阅读:
    关于Delphi中RS Float字段只有4位及OADateTime不能显示到秒的解决办法
    xml特殊字符处理(js)
    总结一下最近将163邮箱拖动效果改成兼容Firefox遇到的问题
    在XIB里面关于@property,@synthesize,release,dealloc的怪现象
    关于Core Data里面删除了一个被retain的NSManagedObject
    Hello cnblogs' world!
    html5离线应用程序 Amy
    css3布局相关的样式 Amy
    html5拖放API Amy
    css3MediaQueries的相关样式 Amy
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426892.html
Copyright © 2011-2022 走看看