Rails 5.2 Active Record 마이그레이션으로 콘텐츠 데이터베이스 만들기

Rails 5.2로 간단한 Wiki 사이트 만들기 - Part2
Rails 5.2로 간단한 Wiki 사이트 만들기 만들기의 연속입니다.

환경


  • Rails 5.2.2
  • ruby 2.5.1p57
  • psql (PostgreSQL) 10.4

  • 전제 조건



    이 기사에서는 Rails, ruby, PG 설치 내용을 포함하지 않습니다.
  • ruby ​​설치는 여기 기사를 이해하기 쉽습니다.
  • Ruby on Rails 설치는 여기 기사를 이해하기 쉽습니다.

  • 소개



    git commit log

    이 기사에서는 Active Record 마이그레이션에서 콘텐츠 데이터베이스를 만듭니다.


    컬럼
    금형
    설명


    title
    문자열
    제목

    body
    텍스트
    본문

    is_published
    부울
    공개 플래그

    contents 테이블에서는, 기본적으로 이런 느낌으로 해 보려고 합니다.

    Rails Generate 명령을 사용하여 테이블을 만듭니다. 참고
    $ rails g model Content title:string body:text is_published:boolean
          invoke  active_record
          create    db/migrate/20190429022702_create_contents.rb
          create    app/models/content.rb
    

    마이그레이션하여 데이터베이스에 테이블을 작성합니다.
    $ rails db:migrate
    == 20190429022702 CreateContents: migrating ===================================
    -- create_table(:contents)
       -> 0.0076s
    == 20190429022702 CreateContents: migrated (0.0077s) ==========================
    


    그런 다음 유용한 annotate gem도 사용합시다. model 파일이나 controller 파일의 맨 위에 열을 추가합니다.

    ./Gemfile
    group :development do
      ...
     + gem 'annotate'
    end
    

    Gemfile에 annotate를 추가하면 bundle install입니다.
    또한 annotate를 install합니다.
    $ bundle install
    ...
    $ rails g annotate:install
          create  lib/tasks/auto_annotate_models.rake
    

    참고
    annotate 를 사용할 수 있게 되었으므로, 한 번 더 rails db:migrate 합니다.
    $ rails db:migrate
    Annotated (1): app/models/content.rb
    
    ./app/models/content.rb 만 내용을 살펴 보겠습니다. 이런 식으로, 상부에 테이블의 내용을 추기해 줍니다.

    ./app/models/content.rb
    # == Schema Information
    #
    # Table name: contents
    #
    #  id           :bigint(8)        not null, primary key
    #  body         :text
    #  is_published :boolean
    #  title        :string
    #  created_at   :datetime         not null
    #  updated_at   :datetime         not null
    #
    
    class Content < ApplicationRecord
    end
    

    또한 db/schema.rb도 살펴 보겠습니다.

    ./db/schema.rb
    ActiveRecord::Schema.define(version: 2019_04_29_022702) do
    
      # These are extensions that must be enabled in order to support this database
      enable_extension "plpgsql"
    
      create_table "contents", force: :cascade do |t|
        t.string "title"
        t.text "body"
        t.boolean "is_published"
        t.datetime "created_at", null: false
        t.datetime "updated_at", null: false
      end
    
    end
    

    마지막으로



    git commit log

    NEXT!



    다음은 Content 목록 페이지를 만들어갑니다.

    Wiki 서비스 만들었습니다



    (작은 고지하자 )
    간단한 위키 검색을 사내 커뮤니케이션 채널에서 검색할 수 있는 도구로 "좋다. 이오"이라고 합니다.

    좋은 웹페이지 즐겨찾기