Schema Evolution for Peewee
Project description
Diffs your models against your database, and outputs SQL to (non-destructively) update your schema.
Think of it as db.create_tables() on steriods (which doesn’t drop your database).
You can also think of it as schema migrations, without having to actually write the migrations.
Quick Start
Run: sudo pip install peewee-db-evolve
Add import peeweedbevolve anywhere before your models are defined.
Run db.evolve() where you would have normally run db.create_tables(), and enjoy!
Example
See our Hello World example.
Supported Databases
PostgreSQL
MySQL
Frequently Asked Questions
Does this work with existing projects, or only with new projects?
This works very well with existing projects. If your API only works with new projects, you’re probably doing it wrong.
Don’t you give up control by not writing your own migrations?
Managing your schema by writing your own migrations is kind of like managing your source code by writing your own patch files in addition to writing your actual code. A well vetted diff tool is going to be better and faster at it than you.
How old / well vetted is this tool?
This project has been in production use since August 2016. (We switched to Peewee as an ORM.) But it’s a style of schema management I’ve been using for ~10 years now.
How can I prevent ``peewee-db-evolve`` from evolving a specific table or class?
In the class’ Meta class, add evolve = False and peewee-db-evolve will ignore it. If you don’t have a class for a specific table, just make a do-nothing dummy class for it.
Tests
How to run:
$ python3 test.py
..................................................................................................
----------------------------------------------------------------------
Ran 98 tests in 39.860s
OK
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
File details
Details for the file peewee-db-evolve-3.7.6.tar.gz
.
File metadata
- Download URL: peewee-db-evolve-3.7.6.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b279fc1d317de9f9d204ab85758415bcf1d437515d583d48caaea55346b2271f |
|
MD5 | 7fa9fe0ebd3b2f9d91193b8f75070154 |
|
BLAKE2b-256 | 43b75e75c8fb646ce19c0f80658252a4eccb58c24fa3b5ca7b386cf6fe5b3f39 |