Ruby on Railsにおけるmigrate/migrationの用途
2635 ワード
本文はRuby on Rails入門チュートリアルを見た後、Migrateに疑問を持っている人に適しています.(例えば初心者の私は、Migrateが私にとって新しい概念だったので)
1.Migrateは何に使いますか.
データベースを操作するために使用されます.
2.なぜMigrationが必要なのですか?他の方法ではなく
まず、データベースを更新する古い方法を振り返ります.
テーブルを1枚追加するたびに、テーブルの構造を変更するたびに、次のようにします. MySQLコマンドライン/phpMyadmin/SQLyogなどの他のSQLツール へ SQL文を手書きで書いてこのことをします.(create table, create database, ...)
古い方法の問題:データベース操作は時間を知らない.たとえば、データベースを作成したり、テーブルにフィールドを追加したりすると、このフィールドがいつ追加されたかを調べることはできません.あなた自身やあなたのチームがわざわざ記録を書かない限り.X月X号にXXフィールドを追加します.理由:XX 次の2つ目の問題を引き起こしましたチームメンバー間のデータベース同期.受注モジュールなどの新しい機能を実現するたびに、SQLテーブルをいくつか追加する必要があります.たとえばorderテーブルです.では、チームの他のメンバーがgitの上からpullを降りた後も、これらのSQL文を走って、同じテーブルを作成します.
一般的には、クラウドコラボレーションやQグループなどの公共の場所を探して、走る新しいSQLコードを置いて、他の人は中にコピーして貼り付けて走って、自分の地元の開発環境のデータベースを同期します.その後、テストサーバにアップロード/本番サーバにアップロードするときは、SQL文をコピーして貼り付けます.かなり面倒です.
Migrationを使ったら:問題:どのデータベース操作も時間解決方法を知らない:この問題はdb/migrate/のファイル名の時間を直接見ることで がわかります.問題:チームメンバー間のデータベース同期解決方法:pullがコードを完了した後、
3.Migrateのメリットをまとめる: 修正記録があります:いつデータベースを変更したか、何を変更したかを知っています 複数のコラボレーションを容易にする:rake db:migrateコマンドによるデータベース構造の直接同期により、 のライフを大幅に節約
4.Ruby on Rails,Migrate実例
1たとえばusersテーブルにpasswordというフィールドを追加します.digest、このフィールドはユーザーのパスワードを保存するために使用されます.では、新しいmigrateを生成して(古いファイルを修正しないで、置いておけばいい)実行します.
ここでgはgenerate(生成)の略
ここの名前はadd_password_digest_to_usersフィールド名はpassword_digestタイプはstring
下線という書き方はRails 4.2.4では時代遅れではありませんが、やはり役に立ちます.ネットのチュートリアルでは、
2最初のステップの後、db/migrateフォルダに1つ追加されます.
前の数字はタイムスタンプ(20160419135445)にすぎないことに注意してください.あなたが生成した肯定は私とは違います.このファイルを開けて、中の表に対する修正が正しいことを確認して、あなたのやりたいことに合っています.
この時点でデータベースのテーブルが本当に変更されていないことに注意してください.railsに何を変更したいかを教えているだけです.
3有効にするには
今、時計の構造が変わりました.あなたが望むならMySQLを開いて確認できます
5.参考資料(補足歓迎)
https://ihower.tw/rails4/migrations.html http://culttt.com/2015/10/07/understanding-ruby-on-rails-migrations/
読んでくれてありがとうRailsについてもっと知ってくれて
1.Migrateは何に使いますか.
データベースを操作するために使用されます.
2.なぜMigrationが必要なのですか?他の方法ではなく
まず、データベースを更新する古い方法を振り返ります.
テーブルを1枚追加するたびに、テーブルの構造を変更するたびに、次のようにします.
古い方法の問題:
一般的には、クラウドコラボレーションやQグループなどの公共の場所を探して、走る新しいSQLコードを置いて、他の人は中にコピーして貼り付けて走って、自分の地元の開発環境のデータベースを同期します.その後、テストサーバにアップロード/本番サーバにアップロードするときは、SQL文をコピーして貼り付けます.かなり面倒です.
Migrationを使ったら:
rake db:migrate
に直接接続すればいいです.仕事を終える.SQLコードを探してphpMyAdminに貼り付けて実行する必要はありません.1行のコードは、手作業で2分ほどで解決できることを解決しました.時間は大した問題ではありませんが、毎回そうするのは挫折感があり、こまごましたことだと思います.3.Migrateのメリットをまとめる:
4.Ruby on Rails,Migrate実例
1たとえばusersテーブルにpasswordというフィールドを追加します.digest、このフィールドはユーザーのパスワードを保存するために使用されます.では、新しいmigrateを生成して(古いファイルを修正しないで、置いておけばいい)実行します.
rails g migration add_password_digest_to_users password_digest:string
ここでgはgenerate(生成)の略
rails g migration [ ] [ ]:[ ], [ ]:[ ]
ここの名前はadd_password_digest_to_usersフィールド名はpassword_digestタイプはstring
下線という書き方はRails 4.2.4では時代遅れではありませんが、やはり役に立ちます.ネットのチュートリアルでは、
rails g migration AddPartNumberToProducts
という2つの方法を書くことができます.下線と頭文字の大文字はすべてできます.2最初のステップの後、db/migrateフォルダに1つ追加されます.
20160419135445_add_password_digest_to_accounts.rb
前の数字はタイムスタンプ(20160419135445)にすぎないことに注意してください.あなたが生成した肯定は私とは違います.このファイルを開けて、中の表に対する修正が正しいことを確認して、あなたのやりたいことに合っています.
class AddPasswordDigestToAccounts < ActiveRecord::Migration
def change
add_column :accounts, :password_digest, :string
end
end
この時点でデータベースのテーブルが本当に変更されていないことに注意してください.railsに何を変更したいかを教えているだけです.
3有効にするには
rake db:migrate
今、時計の構造が変わりました.あなたが望むならMySQLを開いて確認できます
5.参考資料(補足歓迎)
https://ihower.tw/rails4/migrations.html http://culttt.com/2015/10/07/understanding-ruby-on-rails-migrations/
読んでくれてありがとうRailsについてもっと知ってくれて