Skip to content

Commit a5ade2a

Browse files
author
Sam Redmond
committed
More stuff for Heroku
1 parent f924802 commit a5ade2a

14 files changed

+349
-9
lines changed

.gitignore

+2-9
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,5 @@ nosetests.xml
3939
#Virtual Environment
4040
venv
4141

42-
#Ignore database storage
43-
db_repository
44-
app.db
45-
46-
#Ignore tmp
47-
tmp/*
48-
49-
#Don't look at my configuration files!
50-
config.py
42+
#Ignore whatever development database I'm working with
43+
app.db

.gitignoreold

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
*.py[cod]
2+
3+
# C extensions
4+
*.so
5+
6+
# Packages
7+
*.egg
8+
*.egg-info
9+
dist
10+
build
11+
eggs
12+
parts
13+
bin
14+
var
15+
sdist
16+
develop-eggs
17+
.installed.cfg
18+
lib
19+
lib64
20+
21+
# Installer logs
22+
pip-log.txt
23+
24+
# Unit test / coverage reports
25+
.coverage
26+
.tox
27+
nosetests.xml
28+
29+
# Translations
30+
*.mo
31+
32+
# Mr Developer
33+
.mr.developer.cfg
34+
.project
35+
.pydevproject
36+
37+
.DS_Store
38+
39+
#Virtual Environment
40+
venv
41+
42+
#Ignore database storage
43+
db_*
44+
app.db
45+
46+
#Ignore tmp
47+
tmp/*
48+
49+
#Don't look at my configuration files!
50+
config.py

config.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import os
2+
3+
basedir = os.path.abspath(os.path.dirname(__file__))
4+
5+
if os.environ.get('DATABASE_URL') is None:
6+
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db')
7+
else:
8+
SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL']
9+
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
10+
11+
SECRET_KEY = os.urandom(24)
12+
13+
#Email
14+
MAIL_SERVER = 'smtp.googlemail.com'
15+
MAIL_PORT = 465
16+
MAIL_USE_TLS = False
17+
MAIL_USE_SSL = True
18+
MAIL_USERNAME = '[email protected]'
19+
MAIL_PASSWORD = '1uattw3ba1b'
20+
21+
MAIL_DEFAULT_SENDER = ('Math & Science Help Center', '[email protected]')
22+
REPLY_RECEIVER = ('Sam Redmond', '[email protected]')
23+
24+
# administrator list
25+
ADMINS = ['[email protected]']

db_repository/README

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
This is a database migration repository.
2+
3+
More information at
4+
http://code.google.com/p/sqlalchemy-migrate/

db_repository/__init__.py

Whitespace-only changes.

db_repository/manage.py

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env python
2+
from migrate.versioning.shell import main
3+
4+
if __name__ == '__main__':
5+
main()

db_repository/migrate.cfg

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
[db_settings]
2+
# Used to identify which repository this database is versioned under.
3+
# You can use the name of your project.
4+
repository_id=database repository
5+
6+
# The name of the database table used to track the schema version.
7+
# This name shouldn't already be used by your project.
8+
# If this is changed once a database is under version control, you'll need to
9+
# change the table name in each database too.
10+
version_table=migrate_version
11+
12+
# When committing a change script, Migrate will attempt to generate the
13+
# sql for all supported databases; normally, if one of them fails - probably
14+
# because you don't have that database installed - it is ignored and the
15+
# commit continues, perhaps ending successfully.
16+
# Databases in this list MUST compile successfully during a commit, or the
17+
# entire commit will fail. List the databases your application will actually
18+
# be using to ensure your updates to that database work properly.
19+
# This must be a list; example: ['postgres','sqlite']
20+
required_dbs=[]
21+
22+
# When creating new change scripts, Migrate will stamp the new script with
23+
# a version number. By default this is latest_version + 1. You can set this
24+
# to 'true' to tell Migrate to use the UTC timestamp instead.
25+
use_timestamp_numbering=False
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from sqlalchemy import *
2+
from migrate import *
3+
4+
5+
from migrate.changeset import schema
6+
pre_meta = MetaData()
7+
post_meta = MetaData()
8+
9+
def upgrade(migrate_engine):
10+
# Upgrade operations go here. Don't create your own engine; bind
11+
# migrate_engine to your metadata
12+
pre_meta.bind = migrate_engine
13+
post_meta.bind = migrate_engine
14+
15+
16+
def downgrade(migrate_engine):
17+
# Operations to reverse the above upgrade go here.
18+
pre_meta.bind = migrate_engine
19+
post_meta.bind = migrate_engine
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from sqlalchemy import *
2+
from migrate import *
3+
4+
5+
from migrate.changeset import schema
6+
pre_meta = MetaData()
7+
post_meta = MetaData()
8+
post = Table('post', post_meta,
9+
Column('id', Integer, primary_key=True, nullable=False),
10+
Column('body', String(length=140)),
11+
Column('timestamp', DateTime),
12+
Column('user_id', Integer),
13+
)
14+
15+
16+
def upgrade(migrate_engine):
17+
# Upgrade operations go here. Don't create your own engine; bind
18+
# migrate_engine to your metadata
19+
pre_meta.bind = migrate_engine
20+
post_meta.bind = migrate_engine
21+
post_meta.tables['post'].create()
22+
23+
24+
def downgrade(migrate_engine):
25+
# Operations to reverse the above upgrade go here.
26+
pre_meta.bind = migrate_engine
27+
post_meta.bind = migrate_engine
28+
post_meta.tables['post'].drop()
+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
from sqlalchemy import *
2+
from migrate import *
3+
4+
5+
from migrate.changeset import schema
6+
pre_meta = MetaData()
7+
post_meta = MetaData()
8+
post = Table('post', pre_meta,
9+
Column('id', Integer, primary_key=True, nullable=False),
10+
Column('body', String),
11+
Column('timestamp', DateTime),
12+
Column('user_id', Integer),
13+
)
14+
15+
request = Table('request', post_meta,
16+
Column('id', Integer, primary_key=True, nullable=False),
17+
Column('class_for', String(length=64)),
18+
Column('issue', String(length=64)),
19+
Column('body', String(length=255)),
20+
Column('extra_requests', String(length=255)),
21+
Column('availability', String(length=255)),
22+
Column('additional', String(length=255)),
23+
Column('timestamp', DateTime),
24+
Column('user_id', Integer),
25+
)
26+
27+
user = Table('user', pre_meta,
28+
Column('id', Integer, primary_key=True, nullable=False),
29+
Column('nickname', String),
30+
Column('email', String),
31+
Column('role', SmallInteger),
32+
)
33+
34+
user = Table('user', post_meta,
35+
Column('id', Integer, primary_key=True, nullable=False),
36+
Column('email', String(length=120)),
37+
Column('hashed_password', String(length=60)),
38+
Column('first_name', String(length=20)),
39+
Column('last_name', String(length=20)),
40+
Column('grade', SmallInteger),
41+
Column('role', SmallInteger, default=ColumnDefault(0)),
42+
)
43+
44+
45+
def upgrade(migrate_engine):
46+
# Upgrade operations go here. Don't create your own engine; bind
47+
# migrate_engine to your metadata
48+
pre_meta.bind = migrate_engine
49+
post_meta.bind = migrate_engine
50+
pre_meta.tables['post'].drop()
51+
post_meta.tables['request'].create()
52+
pre_meta.tables['user'].columns['nickname'].drop()
53+
post_meta.tables['user'].columns['first_name'].create()
54+
post_meta.tables['user'].columns['grade'].create()
55+
post_meta.tables['user'].columns['hashed_password'].create()
56+
post_meta.tables['user'].columns['last_name'].create()
57+
58+
59+
def downgrade(migrate_engine):
60+
# Operations to reverse the above upgrade go here.
61+
pre_meta.bind = migrate_engine
62+
post_meta.bind = migrate_engine
63+
pre_meta.tables['post'].create()
64+
post_meta.tables['request'].drop()
65+
pre_meta.tables['user'].columns['nickname'].create()
66+
post_meta.tables['user'].columns['first_name'].drop()
67+
post_meta.tables['user'].columns['grade'].drop()
68+
post_meta.tables['user'].columns['hashed_password'].drop()
69+
post_meta.tables['user'].columns['last_name'].drop()
+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from sqlalchemy import *
2+
from migrate import *
3+
4+
5+
from migrate.changeset import schema
6+
pre_meta = MetaData()
7+
post_meta = MetaData()
8+
learnersForSubjects = Table('learnersForSubjects', post_meta,
9+
Column('learner_id', Integer),
10+
Column('subject_id', Integer),
11+
)
12+
13+
subject = Table('subject', post_meta,
14+
Column('id', Integer, primary_key=True, nullable=False),
15+
Column('name', String(length=100)),
16+
)
17+
18+
tutorsForSubjects = Table('tutorsForSubjects', post_meta,
19+
Column('tutor_id', Integer),
20+
Column('subject_id', Integer),
21+
)
22+
23+
request = Table('request', pre_meta,
24+
Column('id', Integer, primary_key=True, nullable=False),
25+
Column('class_for', String),
26+
Column('issue', String),
27+
Column('body', String),
28+
Column('extra_requests', String),
29+
Column('availability', String),
30+
Column('additional', String),
31+
Column('timestamp', DateTime),
32+
Column('user_id', Integer),
33+
)
34+
35+
request = Table('request', post_meta,
36+
Column('id', Integer, primary_key=True, nullable=False),
37+
Column('issue', String(length=64)),
38+
Column('body', String(length=1023)),
39+
Column('extra_requests', String(length=255)),
40+
Column('availability', String(length=255)),
41+
Column('additional', String(length=255)),
42+
Column('timestamp', DateTime),
43+
Column('user_id', Integer),
44+
Column('subject_id', Integer),
45+
)
46+
47+
48+
def upgrade(migrate_engine):
49+
# Upgrade operations go here. Don't create your own engine; bind
50+
# migrate_engine to your metadata
51+
pre_meta.bind = migrate_engine
52+
post_meta.bind = migrate_engine
53+
post_meta.tables['learnersForSubjects'].create()
54+
post_meta.tables['subject'].create()
55+
post_meta.tables['tutorsForSubjects'].create()
56+
pre_meta.tables['request'].columns['class_for'].drop()
57+
post_meta.tables['request'].columns['subject_id'].create()
58+
59+
60+
def downgrade(migrate_engine):
61+
# Operations to reverse the above upgrade go here.
62+
pre_meta.bind = migrate_engine
63+
post_meta.bind = migrate_engine
64+
post_meta.tables['learnersForSubjects'].drop()
65+
post_meta.tables['subject'].drop()
66+
post_meta.tables['tutorsForSubjects'].drop()
67+
pre_meta.tables['request'].columns['class_for'].create()
68+
post_meta.tables['request'].columns['subject_id'].drop()
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from sqlalchemy import *
2+
from migrate import *
3+
4+
5+
from migrate.changeset import schema
6+
pre_meta = MetaData()
7+
post_meta = MetaData()
8+
9+
def upgrade(migrate_engine):
10+
# Upgrade operations go here. Don't create your own engine; bind
11+
# migrate_engine to your metadata
12+
pre_meta.bind = migrate_engine
13+
post_meta.bind = migrate_engine
14+
15+
16+
def downgrade(migrate_engine):
17+
# Operations to reverse the above upgrade go here.
18+
pre_meta.bind = migrate_engine
19+
post_meta.bind = migrate_engine
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from sqlalchemy import *
2+
from migrate import *
3+
4+
5+
from migrate.changeset import schema
6+
pre_meta = MetaData()
7+
post_meta = MetaData()
8+
user = Table('user', post_meta,
9+
Column('id', Integer, primary_key=True, nullable=False),
10+
Column('email', String(length=120)),
11+
Column('hashed_password', String(length=60)),
12+
Column('first_name', String(length=20)),
13+
Column('last_name', String(length=20)),
14+
Column('grade', SmallInteger),
15+
Column('created', DateTime),
16+
Column('last_logged_in', DateTime),
17+
Column('role', SmallInteger, default=ColumnDefault(0)),
18+
)
19+
20+
21+
def upgrade(migrate_engine):
22+
# Upgrade operations go here. Don't create your own engine; bind
23+
# migrate_engine to your metadata
24+
pre_meta.bind = migrate_engine
25+
post_meta.bind = migrate_engine
26+
post_meta.tables['user'].columns['created'].create()
27+
post_meta.tables['user'].columns['last_logged_in'].create()
28+
29+
30+
def downgrade(migrate_engine):
31+
# Operations to reverse the above upgrade go here.
32+
pre_meta.bind = migrate_engine
33+
post_meta.bind = migrate_engine
34+
post_meta.tables['user'].columns['created'].drop()
35+
post_meta.tables['user'].columns['last_logged_in'].drop()

db_repository/versions/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)