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

  • 相关阅读:
    python列表
    OSS对象存储的文件上传、解冻、下载与查看
    常用压缩命令
    SWAP
    K8S_第一课作业_20200407
    K8S--- yaml配置文件
    K8S 简介
    php-fpm进程数控制
    linux常用查询命令
    Docker Note1——架构和三要素
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426892.html
Copyright © 2011-2022 走看看