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字段。

  • 相关阅读:
    Asp.Net Web API 2第一课——入门
    Servlet之ServletContext获取web上下文路径、全局参数、和Attribute(域)
    jsp 获取服务器ip 以及端口号
    对String值不可变的理解以及String类型的引用传递问题
    关于 SAXParseException Content is not allowed in Prolog (前言中不允许有内容)
    用tomcat插件 在Eclipse 中配置Tomcat项目
    docker保存日志文件到本地
    java split函数结尾空字符串被丢弃的问题
    byte类型的127+1=-128?
    java 中 Integer 传参方式的问题
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426893.html
Copyright © 2011-2022 走看看