Rails迁移的简介

398 阅读4分钟

Rails migration

Rails迁移简介

在Ruby rails中,迁移是一个辅助工具,它可以促进应用程序中的数据库改变或迁移到一个新的模式。通常,在Ruby中,我们用SQL形式处理数据,但使用Rails迁移,我们可以用DSL定义数据库。因此,我们可以使用与数据库无关的代码;我们获得了将应用程序迁移到一个全新平台的好处。此外,我们可以取回迁移,并并行管理应用程序的源代码。因此,Ruby Rails迁移助手可以帮助我们根据用户需求改变数据库。

什么是rails迁移?

我们对使用ruby rails应用程序很熟悉。但有时,用户需要对数据进行一些改变,这些改变可以通过帮助器 "Rails Migration "来获得。这个帮助器为在rails应用程序中改变数据库提供了便利。我们使用SQL代码进行数据库管理;在这里,我们使用Ruby代码代替。这个助手也有几个优点。例如,如果我们必须使用SQL编写代码,那么在将数据库改变到另一个应用程序时,数据将不会被存储在Active record模型中。尽管如此,如果你使用ruby rails编写代码,数据将被存储在Active Records中,因此我们获得了将它们改变为任何应用程序的优势。此外,迁移帮助我们以独立于平台的方式改变数据库。这是使用Ruby rails迁移比SQL最大的优势。

迁移,是一种添加剂,有助于为我们现有的数据库创建一个新的版本。不断发展的应用程序之一是Ruby rails;因此我们可以使用新的迁移生成一个新的数据库,并发布一个不常见的新的应用程序。什么时候使用迁移是好的,如果我们需要使用Ruby rails在你的数据库中创建一个变化,重要的是要知道我们不应该使用Active Record来改变数据库;相反,使用迁移是一个好的选择。这种迁移可以帮助我们将包含数据库的应用程序部署到一个新的平台上。这些迁移被保存在ruby本身。所以我们可以在以后查看ruby本身的变化。rails迁移的另一个好处是可以共享修改,这有助于其他用户部署代码。

使用rails的其他优点是我们可以编写我们的数据库代码,因此失去了数据独立性。它们大多是省力的。因此,当我们需要通过迁移给数据库带来变化时,我们可以使用DSL。

创建Rails迁移

要创建一个Rails迁移,要求如下:

  • Ruby rails软件
  • 文本编辑器
  • 谷歌chrome浏览器。

我们可以使用迁移进行的操作就像创建一个表一样,我们可以添加或改变列,放弃一个表,等等;创建rails迁移的例子如下。使用rails命令提示符来生成一个命令。打开rails命令提示符后,转到start,然后转到Railsinstaller,再转到命令提示符,ad最后改成application目录为父目录。

使用默认方法进行迁移的代码如下:

  1. class CreateUsers < ActiveRecord::Migration[5.1)
  2. def change
  3. 结束

让我们看看rails迁移中可以容纳的变化。在现有的列中添加一个列,因为这是我们在应用程序中最常见的变化之一。所以,如果我们在现有的数据库中创建任何变化,我们都会使用迁移。因此,我们使用活跃记录,使用Ruby rails接口在数据库中进行更改。我们可以使用rails的基本数据类型。例如:float, datetime, binary, Boolean.等等,我们甚至也可以改变一个列,但这是一个不可逆的过程。也可以添加一个新的表,这也被认为是一种改变。

让我们看一个使用SQL迁移的例子。但是,首先,使用MySQL来理解迁移的流程:

# Mysql
default: &default
adapter: mysql2
username: root
password: password
host: 127.0.0.1
development:
<<: *default
database: todos_development
test:
<<: *default
database: todos_test
production:
<<: *default
database: todos_prod

使用上面的示例代码,打开工作目录。在你喜欢的编辑器中打开database.yml.mysql。在上面的例子中,我们看到数据库配置文件。这个文件帮助MySQL连接到本地主机。这个例子中使用的用户是 "root",密码是 "password"。所以,我们需要根据我们的需要来修改这个文件。因此,在有上述文件的目录中复制同样的文件到database.yml,并尽量保留和保存原始文件。下一步是运行Rake。请看下面的代码来操作。请注意,可能会出现一些警告:

rake db:create
Created database 'todos_development'
Created database 'todos_test'rake db:migrate
== 20181214203309 CreateTodos: migrating ======================================
-- create_table(:todos)
-> 0.0217s
== 20181214203309 CreateTodos: migrated (0.0218s) =============================

现在我们需要运行迁移,如上所示。所以,这里的迁移发生在SQLite3和MySQL之间。所以,作为总结,我们修改了配置文件并运行了迁移命令。rake命令在将应用程序中存在的变化部署到新的后端时非常有用。

Rails迁移文件

当我们创建一个迁移时,例如在上面的内容中看到,输出将是一个文件,名称为20190428200056_add_user_to_todos.rb。

所以,请在你的目录中找到这个文件名,用编辑器打开它。Rails将创建一个项目文件,在其中创建迁移。在上面的示例文件名中,数字是版本ID。这个ID是Rake用来将应用程序部署到MySQL的。

总结

所以,我们看到了迁移和它的用途。如果我们需要将任何数据库改为另一个数据库,我们必须使用迁移助手。改变可以是增加一个数据库或列,等等。