- database versioning with migrate
- backend for domains - settings for immutable things and config encapsulation git-svn-id: file:///home/www/usr01/svn/gnuviechadmin/gnuviech.info/gnuviechadmin/trunk@229 a67ec6bc-e5d5-0310-a910-815c51eb3124
This commit is contained in:
parent
0d12afc71e
commit
3f4457bdca
22 changed files with 432 additions and 50 deletions
1
data/dbrepo/versions/1/1.postgres.downgrade.sql
Normal file
1
data/dbrepo/versions/1/1.postgres.downgrade.sql
Normal file
|
@ -0,0 +1 @@
|
|||
DROP SCHEMA gva;
|
1
data/dbrepo/versions/1/1.postgres.upgrade.sql
Normal file
1
data/dbrepo/versions/1/1.postgres.upgrade.sql
Normal file
|
@ -0,0 +1 @@
|
|||
CREATE SCHEMA gva;
|
84
data/dbrepo/versions/2/2.py
Normal file
84
data/dbrepo/versions/2/2.py
Normal file
|
@ -0,0 +1,84 @@
|
|||
from sqlalchemy import *
|
||||
from migrate import *
|
||||
from gnuviechadmin.backend.settings import dbschema
|
||||
|
||||
meta = BoundMetaData(migrate_engine)
|
||||
client = Table(
|
||||
'client', meta,
|
||||
Column('clientid', Integer, primary_key=True),
|
||||
Column('title', String(10)),
|
||||
Column('firstname', String(64), nullable=False),
|
||||
Column('lastname', String(64), nullable=False),
|
||||
Column('address1', String(64), nullable=False),
|
||||
Column('address2', String(64)),
|
||||
Column('zip', String(7), nullable=False),
|
||||
Column('city', String(64), nullable=False),
|
||||
Column('country', String(5), nullable=False),
|
||||
Column('phone', String(32), nullable=False),
|
||||
Column('mobile', String(32)),
|
||||
Column('fax', String(32)),
|
||||
Column('email', String(64), unique=True, nullable=False),
|
||||
schema = dbschema
|
||||
)
|
||||
sysuser = Table(
|
||||
'sysuser', meta,
|
||||
Column('sysuserid', Integer, primary_key=True),
|
||||
Column('username', String(12), nullable=False, unique=True),
|
||||
Column('usertype', Integer, nullable=False, default=0, index=True),
|
||||
Column('home', String(128)),
|
||||
Column('shell', Boolean, nullable=False, default=False),
|
||||
Column('clearpass', String(64)),
|
||||
Column('md5pass', String(34)),
|
||||
Column('clientid', Integer, ForeignKey("client.clientid"),
|
||||
nullable=False),
|
||||
Column('sysuid', Integer, nullable=False, unique=True),
|
||||
Column('lastchange', DateTime, default=func.now()),
|
||||
schema = dbschema
|
||||
)
|
||||
domain = Table(
|
||||
'domain', meta,
|
||||
Column('domainid', Integer, primary_key=True),
|
||||
Column('name', String(255), nullable=False, unique=True),
|
||||
Column('master', String(20)),
|
||||
Column('last_check', Integer),
|
||||
Column('type', String(6), nullable=False),
|
||||
Column('notified_serial', Integer),
|
||||
Column('sysuserid', Integer, ForeignKey("sysuser.sysuserid"),
|
||||
nullable=False),
|
||||
schema = dbschema
|
||||
)
|
||||
record = Table(
|
||||
'record', meta,
|
||||
Column('recordid', Integer, primary_key=True),
|
||||
Column('domainid', Integer, ForeignKey("domain.domainid"),
|
||||
nullable=False),
|
||||
Column('name', String(255)),
|
||||
Column('type', String(6)),
|
||||
Column('content', String(255)),
|
||||
Column('ttl', Integer),
|
||||
Column('prio', Integer),
|
||||
Column('change_date', Integer),
|
||||
schema = dbschema
|
||||
)
|
||||
supermaster = Table(
|
||||
'supermaster', meta,
|
||||
Column('ip', String(25), nullable=False),
|
||||
Column('nameserver', String(255), nullable=False),
|
||||
Column('account', Integer, ForeignKey("sysuser.sysuserid"),
|
||||
nullable=False),
|
||||
schema = dbschema
|
||||
)
|
||||
|
||||
def upgrade():
|
||||
client.create()
|
||||
sysuser.create()
|
||||
domain.create()
|
||||
record.create()
|
||||
supermaster.create()
|
||||
|
||||
def downgrade():
|
||||
supermaster.drop()
|
||||
record.drop()
|
||||
domain.drop()
|
||||
sysuser.drop()
|
||||
client.drop()
|
0
data/dbrepo/versions/__init__.py
Normal file
0
data/dbrepo/versions/__init__.py
Normal file
Loading…
Add table
Add a link
Reference in a new issue