3단계 Ruby - 활성 레코드 마이그레이션 - 마이그레이션 만들기

3단계에서 Ruby를 배우면서 Active Record를 사용하여 백엔드 데이터 서버를 설정하는 과정이 정말 즐거웠습니다. Active Record는 개발자가 코드를 더 쉽게 작성할 수 있도록 해주는 개체 관계형 매퍼입니다. 여기서는 Rake Tasks를 사용하여 Active Record 마이그레이션을 생성하는 것에 대해 구체적으로 논의할 것입니다. 마이그레이션은 시간이 지남에 따라 일관된 방식으로 데이터베이스 스키마를 변경할 수 있는 편리한 방법입니다. 따라야 할 몇 가지 단계가 있습니다.
  • 데이터 테이블을 설정하기 위해 마이그레이션을 생성해야 합니다(이 예에서는 "students"를 사용함).

  • #put this code in your terminal
    #make sure you are in your project's directory that you are 
    #currently working or building 
    bundle exec rake db:create_migration NAME=create_students
    


    이 코드를 실행하면 db/migrations에 timestamps_create_students.rb라는 새 파일이 생성됩니다.

    ├── 앱
    │ └── 모델
    │ └── 학생.rb
    ├── 구성
    │ └── 환경.rb
    ├── 디비
    │ └── 마이그레이션
    │ └── 20220605095220_create_students.rb # 여기 새 파일
    ├── 사양
    ├── 젬파일
    ├── Gemfile.lock
    └── 레이크파일

    마이그레이션 시작 시의 타임스탬프는 마이그레이션에 대한 버전 제어의 일부로 사용되며 올바른 순서로 실행되는지 확인합니다.

    또한 이 rake 작업은 우리를 위해 몇 가지 코드를 추가합니다.

    # db/migrate/20220605095220_create_students.rb
    class CreateStudents < ActiveRecord::Migration[6.1]
      def change
      end
    end
    


  • 데이터에 대한 적절한 열이 있는 학생 테이블을 생성하는 CreateStudents 마이그레이션을 완료하려면 create_table 메서드를 사용하고 만들고자 하는 테이블의 이름을 기호로 전달해야 합니다.

  • 테이블 이름 :students 다음에 우리는 테이블에 다른 열을 추가하는 데 도움이 되는 특수한 활성 레코드 마이그레이션 개체인 블록 매개 변수 t를 전달하는 코드 블록을 작성합니다.

    # db/migrate/20220605095220_create_students.rb
    def change
      create_table :students do |t|
      end
    end
    


  • 열을 추가합니다.

  • class CreateStudents < ActiveRecord::Migration[6.1]
      def change
        create_table :students do |t|
          t.string :first_name
          t.string :last_name
          t.integer :age
          t.string :school
          # the id column will be generated automatically for every table.
        end
      end
    end
    


  • 마지막으로 명령 터미널에서 마이그레이션을 실행합니다.

  • bundle exec rake db:migrate
    
    == 20220605095220 CreateStudents: migrating ====================================
    -- create_table(:students)
     0.0008s
    == 20220605095220 CreateStudents: migrated (0.0009s) ===========================
    


    이 명령 실행:
  • Active Record는 database.yml 파일의 구성을 기반으로 아직 존재하지 않는 경우 새 데이터베이스 파일을 생성합니다.
  • 그런 다음 마이그레이션 폴더의 코드를 사용하여 데이터베이스를 업데이트합니다.
  • 또한 데이터베이스의 현재 상태에 대한 "스냅샷"으로 사용되는 db/schema.rb 파일을 생성합니다.

  • 아래와 같이 db/schema.rb 파일이 표시됩니다.

    ActiveRecord::Schema.define(version: 2022_06_05_095220) do
      create_table "students", force: :cascade do |t|
        t.string "first_name"
        t.string "last_name"
        t.integer "age"
        t.string "school"
      end
    end
    


    이 Rake 작업을 사용하여 마이그레이션 상태를 보고 마이그레이션이 데이터베이스를 업데이트했는지 확인하십시오.

    bundle exec rake db:migrate:status
    
    database: db/development.sqlite3
    
     Status   Migration ID    Migration Name
    --------------------------------------------------
       up     20220605095220  Create students
    


    이제 Rake 작업을 사용하여 마이그레이션을 성공적으로 생성했습니다!

    좋은 웹페이지 즐겨찾기