📜  Ruby on Rails迁移

📅  最后修改于: 2021-01-12 02:43:34             🧑  作者: Mango

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

编辑代码

转到教程应用程序中的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”表。它跟踪数据库的当前版本。

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