No project description provided
Project description
atlas-provider-django
Load Django models into an Atlas project.
Use-cases
- Declarative migrations - use a Terraform-like
atlas schema apply --env django
to apply your Django schema to the database. - Automatic migration planning - use
atlas migrate diff --env django
to automatically plan a migration from the current database version to the Django schema.
Installation
Install Atlas for macOS or Linux by running:
curl -sSf https://atlasgo.sh | sh
See atlasgo.io for more installation options.
Install the provider by running:
pip install atlas-provider-django
Configuration
Add the provider to your Django project's INSTALLED_APPS
in settings.py
:
INSTALLED_APPS = [
...,
'atlas_provider_django',
...
]
In your project directory, create a new file named atlas.hcl
with the following contents:
data "external_schema" "django" {
program = [
"python",
"manage.py",
"atlas-provider-django",
"--dialect", "mysql" // mariadb | postgresql | sqlite | mssql
// if you want to only load a subset of your app models, you can specify the apps by adding
// "--apps", "app1", "app2", "app3"
]
}
env "django" {
src = data.external_schema.django.url
dev = "docker://mysql/8/dev"
migration {
dir = "file://migrations"
}
format {
migrate {
diff = "{{ sql . \" \" }}"
}
}
}
Usage
Apply
You can use the atlas schema apply
command to plan and apply a migration of your database to your current Django schema.
This works by inspecting the target database and comparing it to the Django Apps models and creating a migration plan.
Atlas will prompt you to confirm the migration plan before applying it to the database.
atlas schema apply --env django -u "mysql://root:password@localhost:3306/mydb"
Where the -u
flag accepts the URL to the
target database.
Diff
Atlas supports a versioned migrations
workflow, where each change to the database is versioned and recorded in a migration file. You can use the
atlas migrate diff
command to automatically generate a migration file that will migrate the database
from its latest revision to the current Django schema.
atlas migrate diff --env django
Supported Databases
The provider supports the following databases:
- MySQL
- MariaDB
- PostgreSQL
- SQLite
- Microsoft SQL Server
Issues
Please report any issues or feature requests in the ariga/atlas repository.
License
This project is licensed under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for atlas_provider_django-0.1.9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ed118e8bebad9e6808b3ec026885042cc128a5d6ce87dacca3de63253c7dae5 |
|
MD5 | 9339e9d1152b901b0d476e32954566c6 |
|
BLAKE2b-256 | 7384446d4ae72dc65f2cab7ffc1980c3d64d1f239155046fef43b9a0ae54f79d |
Hashes for atlas_provider_django-0.1.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b36d1e97be829ae3a9611a9e2b11560d69fccda19b3ee4397943821b6b778a5b |
|
MD5 | b931023e4cf4aa10a6d692573ce2a74f |
|
BLAKE2b-256 | 7814b1de207c35752d1ec7348fc16a69e36e77f3753840c55bb23fb5427bc6b7 |