[Phoenix] Ecto를 사용하여 다시 마이그레이션
목적
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의 상태.
목차
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의 상태.
목차
>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
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
Reference
이 문제에 관하여([Phoenix] Ecto를 사용하여 다시 마이그레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/darui_kara/items/7f07b07771089c0607a8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([Phoenix] Ecto를 사용하여 다시 마이그레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/darui_kara/items/7f07b07771089c0607a8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)