[Phoenix] Ecto를 사용하여 다시 마이그레이션

4158 단어 Phoenixecto

목적



Ecto에서 다시 마이그레이션을 수행합니다.

실행 환경



OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1
PostgreSQL : postgres (PostgreSQL) 9.4.4

시작하기 전에



내가 만든 프로젝트를 작성해 둡니다.
>cd プロジェクト作成ディレクトリ
>mix phoenix.new ecto_models_sample
>cd ecto_models_sample
>mix phoenix.server
>ctrl+c
>mix phoenix.gen.html User users name:string email:string
ルーティングの追加
>mix ecto.create
>mix ecto.migrate

준비 좋은.
이후 이 기사의 프로젝트라고 하면ecto_models_sample를 가리킨다.

마이그레이션하고 생성한 테이블에 열을 추가/삭제합니다.
이번에는 users 테이블에 age 항목을 추가/삭제해 봅니다.

현재 DB의 상태.


목차


  • 컬럼 추가
  • 열 삭제
  • 요약

  • 1. 컬럼 추가



    ecto 명령을 사용하여 마이그레이션 파일을 생성합니다.
    명칭은, 処理_カラム名_to_テーブル名 라고 하면 알기 쉬운 것이 아닐까요.
    >mix ecto.gen.migration add_age_to_users
    * creating priv/repo/migrations
    * creating priv/repo/migrations/20150630005902_add_age_to_users.exs
    

    priv/repo/migrations/20150630005902_add_age_to_users.exs
    다음과 같이 편집했습니다.
    defmodule EctoModelsSample.Repo.Migrations.AddAgeToUsers do
      use Ecto.Migration
    
      def change do
        alter table(:users) do
          add :age, :integer
        end
      end
    end
    

    마이그레이션하여 열을 추가합니다.
    >mix ecto.migrate
    [info] == Running EctoModelsSample.Repo.Migrations.AddAgeToUsers.change/0 forward
    [info] alter table users
    [info] == Migrated in 0.0s
    

    DB의 users 테이블을 확인해보십시오.


    2. 컬럼 삭제



    열을 삭제합니다.
    >mix ecto.gen.migration remove_age_to_users
    * creating priv/repo/migrations
    * creating priv/repo/migrations/20150630014132_remove_age_to_users.exs
    

    생성된 파일을 다음과 같이 편집합니다.
    defmodule EctoModelsSample.Repo.Migrations.RemoveAgeToUsers do
      use Ecto.Migration
    
      def change do
        alter table(:users) do
          remove :age
        end
      end
    end
    

    마이그레이션합니다.
    >mix ecto.migrate
    [info] == Running EctoModelsSample.Repo.Migrations.RemoveAgeToUsers.change/0 forward
    [info] alter table users
    [info] == Migrated in 0.0s
    

    이것으로 삭제 완료입니다.


    3. 정리



    어렵지 않아요.
    다른 처리도 Ecto 문서를 참조하면 대체로 문제 없다고 생각합니다.

    매번 이렇게 끝나면 편하고 좋지만 ...

    참고문헌



    Phoenix Framework - Guide Mix Tasks
    hexdocs - Ecto.Migration

    좋은 웹페이지 즐겨찾기