Skip to content

Commit f924802

Browse files
author
Sam Redmond
committed
Heroku needs to see database update scripts
1 parent 19f3759 commit f924802

File tree

5 files changed

+49
-1
lines changed

5 files changed

+49
-1
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ nosetests.xml
4040
venv
4141

4242
#Ignore database storage
43-
db_*
43+
db_repository
4444
app.db
4545

4646
#Ignore tmp

db_create.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!venv/bin/python
2+
from migrate.versioning import api
3+
from config import SQLALCHEMY_DATABASE_URI
4+
from config import SQLALCHEMY_MIGRATE_REPO
5+
from app import db
6+
import os.path
7+
db.create_all()
8+
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
9+
api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
10+
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
11+
else:
12+
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))

db_downgrade.py

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!flask/bin/python
2+
from migrate.versioning import api
3+
from config import SQLALCHEMY_DATABASE_URI
4+
from config import SQLALCHEMY_MIGRATE_REPO
5+
6+
v = api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
7+
api.downgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, v - 1)
8+
9+
print 'Current database version: ' + str(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO))

db_migrate.py

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!venv/bin/python
2+
import imp
3+
from migrate.versioning import api
4+
from app import db
5+
from config import SQLALCHEMY_DATABASE_URI
6+
from config import SQLALCHEMY_MIGRATE_REPO
7+
8+
migration = SQLALCHEMY_MIGRATE_REPO + '/versions/%03d_migration.py' % (api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO) + 1)
9+
10+
tmp_module = imp.new_module('old_model')
11+
old_model = api.create_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
12+
exec old_model in tmp_module.__dict__
13+
14+
script = api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, tmp_module.meta, db.metadata)
15+
open(migration, "wt").write(script)
16+
api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
17+
18+
print 'New migration saved as ' + migration
19+
print 'Current database version: ' + str(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO))

db_upgrade.py

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!venv/bin/python
2+
from migrate.versioning import api
3+
from config import SQLALCHEMY_DATABASE_URI
4+
from config import SQLALCHEMY_MIGRATE_REPO
5+
6+
api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
7+
8+
print 'Current database version: ' + str(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO))

0 commit comments

Comments
 (0)