簡體   English   中英

如何在Rails上的ruby中進行遷移和回滾工作

[英]how do migrate and rollback work in ruby on rails

當我們打電話

bundle exec db:migrate

是否總是創建一個新表? 或者只是創建不在上表中的新列?

回滾有什么作用? 它如何知道要刪除哪一列,並且這種刪除操作是可逆的? 例如,如果我不小心刪除了一個有用的列,是否可以取消上一個操作並將其取回?

我想你是說, bundle exec rake db:migrate

  1. Active Record跟蹤已運行的遷移。 示例:如果將sqlite3用作數據庫,則可以查看具有這些遷移詳細信息的表schema_migrations 它主要有這樣的條目

      row id version 1 "20120926105202" #matched migration timestamp 
  2. 此rake任務僅運行您在<app>/db/migrate/下的遷移文件中的內容。 因此,如果您在該遷移文件中創建了表,則可以這樣做。

  3. 要回滾上一次遷移,您始終可以運行rake db:rollback

  4. 為了更好地理解,我請您閱讀《 Rails遷移指南》 通讀它會解決所有有關遷移的查詢。

您正在描述自己要做什么。 http://guides.rubyonrails.org/migrations.html

class CreateProducts < ActiveRecord::Migration
  def up # for rake db:migrate
    create_table :products do |t|
      t.string :name
      t.text :description

      t.timestamps
    end
  end

  def down # for rake db:rollback
    drop_table :products
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM