DB Migrations for the continuous developer.
Project description
wigeon
DB Migrations for the coninuous developer.
This is a framework and cli for building and deploying sql database migrations across your CI/CD-based development, just bring your sql skills and a database (or several)!
STILL VERY MUCH A WORK IN PROGRESS!!
Features included
- Database package creation
- Auto-iterated migration naming
- Migration manifest management
- Migration build tagging
- connection manager
- connection arguments passed at runtime to support deployment across multiple enviroments
- migration changelog written to target database
- deploy/run sql script migrations
Databases supported (at the moment)
- sqlite support
Databases to support (soon)
- mssqlserver support
- postgres
- mysql
To use:
NOTE: prefix every command with python
if you are running directly from a clone of the repo.
Access help:
wigeon --help
Create fly
package for sqlite
with local, dev, qa, and prod environments:
wigeon createpackage fly sqlite --environments=local,dev,qa,prod
Add migrations to the fly
package with build tag of 0.0.1
:
wigeon createmigration initialize_db fly 0.0.1
wigeon createmigration add_people_table fly 0.0.1
wigeon createmigration add_cars_table fly 0.0.1
List all migrations for the fly
package:
wigeon listmigrations fly
Run migrations for the fly
package (a local sqlite connection):
wigeon runmigrations fly --connstring=/path/to/exampledb.sqlite
Requirements
For gcc compiler on Ubuntu
sudo apt install build-essential
For ODBC on Ubuntu
sudo apt-get install libssl-dev libffi-dev python3-dev
sudo apt-get install -y unixodbc-dev
For mssql-server ODBC on Ubuntu
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version
#Ubuntu 16.04
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
#Ubuntu 18.04
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
#Ubuntu 20.04
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
#Ubuntu 21.04
curl https://packages.microsoft.com/config/ubuntu/21.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.