상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Elixir의 데이터베이스 마이그레이션 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Elixir에서 데이터베이스 마이그레이션은 주로 Ecto라는 라이브러리를 통해 수행됩니다. Ecto는 Elixir의 데이터베이스 상호작용을 위한 도구로, 데이터베이스 <a href='https://sangseek.com/sangseeks/스키마/ko'>스키마</a>를 정의하고, 쿼리를 작성하며, 마이그레이션을 관리하는 데 유용합니다. 아래에서는 Elixir에서 데이터베이스 마이그레이션을 수행하는 방법에 대해 자세히 설명하겠습니다. 1. Ecto 설치 및 설정 Ecto를 사용하기 위해서는 먼저 프로젝트에 Ecto와 데이터베이스 어댑터를 추가해야 합니다. 예를 들어 PostgreSQL을 사용할 경우, `<a href='https://sangseek.com/sangseeks/mix.exs/ko'>mix.exs</a>` 파일에 다음과 같이 의존성을 추가합니다. ```elixir defp deps do [ {:ecto_sql, "~> 3.6"}, {:postgrex, ">= 0.0.0"} ] end ``` 이후 `mix deps.get` 명령어를 실행하여 의존성을 설치합니다. 2. Repo 설정 Ecto를 사용하기 위해서는 Repo 모듈을 설정해야 합니다. `lib/my_app/repo.ex` 파일을 생성하고 다음과 같이 작성합니다. ```elixir defmo<a href='https://sangseek.com/sangseeks/du/ko'>du</a>le MyApp.Repo do use Ecto.Repo, otp_app: :my_app, adapter: Ecto.Adapters.Postgres end ``` 그 다음, `config/config.exs` 파일에 Repo를 설정합니다. ```elixir config :my_app, MyApp.Repo, username: "postgres", password: "postgres", database: "my_app_dev", hostname: "localhost", pool_size: 10 ``` 3. 마이그레이션 생성 마이그레이션 파일을 생성하려면 `mix ecto.gen.migration` 명령어를 사용합니다. 예를 들어, `create_users`라는 마이그레이션을 생성하려면 다음과 같이 입력합니다. ```bash mix ecto.gen.migration create_users ``` 이 명령어는 `priv/repo/migrations` 디렉토리에 새로운 마이그레이션 파일을 생성합니다. 4. 마이그레이션 파일 작성 생성된 마이그레이션 파일을 열고, `change/0` 함수를 구현하여 데이터베이스 스키마를 정의합니다. 예를 들어, `users` 테이블을 생성하는 마이그레이션은 다음과 같이 작성할 수 있습니다. ```elixir defmodule MyApp.Repo.Migrations.CreateUsers do use Ecto.Migration def change do create table(:users) do add :name, :string add :email, :string add :inserted_at, :naive_datetime add :updated_at, :naive_datetime end create unique_index(:users, [:email]) end end ``` 5. 마이그레이션 실행 마이그레이션을 실행하려면 `mix ecto.migrate` 명령어를 사용합니다. 이 명령어는 아직 실행되지 않은 모든 마이그레이션을 실행하여 데이터베이스를 최신 상태로 업데이트합니다. ```bash mix ecto.migrate ``` 6. 마이그레이션 롤백 마이그레이션을 롤백하려면 `mix ecto.rollback` 명령어를 사용합니다. 이 명령어는 마지막으로 실행된 마이그레이션을 되돌립니다. ```bash mix ecto.rollback ``` 특정 마이그레이션 단계로 롤백하려면 `--step` 옵션을 사용할 수 있습니다. ```bash mix ecto.rollback --step 2 ``` 7. 마이그레이션 상태 확인 현재 데이터베이스의 마이그레이션 상태를 확인하려면 `mix ecto.migrations` 명령어를 사용할 수 있습니다. 이 명령어는 실행된 마이그레이션과 아직 실행되지 않은 마이그레이션을 보여줍니다. ```bash mix ecto.migrations ``` 8. 마이그레이션 테스트 마이그레이션을 테스트하는 것은 중요합니다. Ecto는 테스트 환경을 위한 데이터베이스를 설정할 수 있도록 지원합니다. `test/support` 디렉토리에 테스트를 위한 Repo를 설정하고, 테스트 실행 시 마이그레이션을 적용할 수 있습니다. 결론 Elixir에서 데이터베이스 마이그레이션은 Ecto를 통해 간편하게 수행할 수 있습니다. 마이그레이션 파일을 생성하고, 스키마를 정의한 후, 마이그레이션을 실행하여 데이터베이스를 업데이트하는 과정은 매우 직관적입니다. Ecto의 강력한 기능을 활용하여 데이터베이스 스키마를 효과적으로 관리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기