Ruby on Rails迁移用法详解

本文概述

迁移是一种以一致且有组织的方式随时间更改数据库架构的方法。他们使用的是Ruby DSL, 无需手工编写SQL。

可以手动编辑SQL片段, 但随后你必须将所做的更改告知其他开发人员, 然后运行它们。你需要跟踪下次部署时需要在生产计算机上运行的更改。

每次迁移都是数据库的新版本。每次迁移都会通过添加或删除表, 列或条目来修改数据库。活动记录将更新你的db / schema.rb文件, 以匹配数据库的最新结构。


迁移目的

在使用之前, 了解迁移的目的很重要。数据库在所有Web应用程序中使用。

通常, SQL语句用于运行数据库查询以创建, 修改, 读取或删除数据库的列。

迁移文件包含一组有关如何创建数据库的特定说明。运行该文件时, Rails将自动在数据库中进行更改。逐渐地, 迁移文件将充当数据库更改方式的版本历史记录。这意味着你将能够从指令集文件中重新创建数据库。


创建迁移文件

创建迁移文件的语法:

application_dir> rails generate migration table_name

这将创建一个名为db / migrate / 001_table_name.rb的文件。迁移文件包含数据库表的基本数据结构。

建议在运行迁移生成器之前, 清理由模型生成器生成的现有迁移。

例:

让我们在应用程序教程中创建一个名为java的迁移。

rails generate migration java
Ruby On Rails迁移1

编辑代码

转到教程应用程序中的db / migrate目录。在当前文件001_java.rb中写入followig代码,

class Java < ActiveRecord::Migration 
   
   def self.up 
      create_table :java do |t| 
         t.column :title, :string, :limit => 32, :null => false 
         t.column :fee, :float 
         t.column :duration, :integer 
         t.column :index, :string 
         t.column :created_at, :timestamp 
      end 
   end 

   def self.down 
      drop_table :java 
   end 
end

在迁移到新版本时使用self.up方法, 并在需要时使用self.down方法回滚所有更改。


运行迁移

创建所有必需的迁移文件后, 你需要执行它们。要针对数据库执行迁移文件, 请运行以下代码:

rake db:migrate

如果不存在, 它将创建一个” schema_info”表。它跟踪数据库的当前版本。

如果将创建新的迁移, 则它将是数据库的新版本。

Ruby On Rails迁移2

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?