Atlas 프로젝트 파일 발표
6730 단어 devopsdatabasesqlmigrations
프로젝트 파일은 Atlas로 작업하는 동안 여러 환경을 설명하고 상호 작용하는 방법을 제공합니다. 프로젝트 파일은 각각 환경을 설명하는 하나 이상의
atlas.hcl
블록을 포함하는 env
라는 이름의 파일입니다. 각 환경에는 스키마 정의 파일이 있는 위치에 대한 참조, 데이터베이스 URL 및 Atlas에서 관리하는 데이터베이스의 스키마 배열이 있습니다.// Define an environment named "local".
env "local" {
// Declare where the schema definition file resides.
src = "./schema/project.hcl"
// Define the URL of the database which is managed in
// this environment.
url = "mysql://localhost:3306"
// Define the URL of the Dev Database for this environment.
// See: https://atlasgo.io/dev-database
dev = "mysql://localhost:3307"
// The schemas in the database that are managed by Atlas.
schemas = ["users", "admin"]
}
env "dev" {
// ... a different env
}
CLI를 사용하는 개발자에게 더 나은 경험을 제공해야 할 필요성에서 프로젝트 파일이 생성되었습니다. 예를 들어 Atlas를 사용하여 데이터베이스 스키마에 대한 마이그레이션을 계획한다고 가정합니다. 이 경우 마이그레이션을 계획하기 위해 이와 유사한 명령을 실행합니다.
atlas migrate diff --dev-url mysql://root:password@localhost:3306 --to file://schema.hcl --dir file://migrations --format atlas
프로젝트 파일을 사용하여
local
라는 환경을 정의할 수 있습니다.env "local" {
url = "mysql://root:password@localhost:3306"
dev = "mysql://root:password@localhost:3307"
src = "./schema.hcl"
migration_dir {
url = "file://migrations"
format = atlas
}
}
그런 다음
migrate diff
플래그를 사용하여 이 환경에 대해 --env
명령을 실행합니다.atlas migrate diff --env local
또는 Atlas를 사용하여 스테이징 환경에 스키마를 적용한다고 가정합니다. 프로젝트 파일이 없으면 다음을 사용합니다.
atlas schema apply -u mysql://root:[email protected]:3306 --dev-url mysql://root:password@localhost:3307 -f schema.hcl
프로젝트 파일을 사용하여 동일한 작업을 수행하려면
staging
라는 다른 환경을 정의합니다.env "staging" {
url = "mysql://root:[email protected]:3306"
dev = "mysql://root:password@localhost:3307"
src = "./schema.hcl"
}
그런 다음 다음을 실행합니다.
atlas schema apply --env staging
자격 증명을 입력 값으로 전달
와 유사하게 프로젝트 파일도 . 즉, 프로젝트 파일에서 블록을 정의
variable
하여 파일을 평가할 때 제공해야 하는 값을 선언할 수 있습니다. 이 메커니즘은 소스 제어 데이터베이스 자격 증명에 대한 커밋을 방지하는 데 사용할 수 있으며 사용해야 합니다. 이렇게 하려면 먼저 db_password
라는 변수를 정의합니다.variable "db_password" {
type = string
}
그런 다음 모든 연결 문자열의 데이터베이스 암호를 이 변수에 대한 참조로 바꿉니다. 예를 들면 다음과 같습니다.
env "staging" {
url = "mysql://root:${var.db_password}@db.ariga.dev:3306"
dev = "mysql://root:${var.db_password}@localhost:3307"
src = "./schema.hcl"
}
암호 입력 변수를 제공하지 않고
schema apply
를 실행하면 오류 메시지가 표시됩니다.Error: missing value for required variable "db_password"
입력 변수를 제공하려면 다음을 실행하십시오.
atlas schema apply --env staging --var db_password=pass
입력 변수는 input values to schema files 으로 전달하여 다른 많은 사용 사례에 사용할 수 있습니다.
무엇 향후 계획
이 게시물에서는 개발자가 데이터베이스 스키마에 대한 변경 사항을 관리하기 위한 보다 유창한 워크플로우를 생성할 수 있도록 Atlas에 최근 추가된 새로운 기능인 Project Files을 소개했습니다. 앞으로 몇 주 동안 특정 환경을 기본 환경으로 표시(대부분의 경우
--env
를 지정해야 할 필요성 완화) 및 multi-file schema definitions을 지원하는 등 개발 흐름에 몇 가지 개선 사항을 추가할 예정입니다.질문이 있으신가요? 피드백? 우리 팀 찾기on our Discord server .
Reference
이 문제에 관하여(Atlas 프로젝트 파일 발표), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ariga/announcing-atlas-project-files-59k4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)