diff --git a/data/dbrepo/versions/004_Add_organization_table.py b/data/dbrepo/versions/004_Add_organization_table.py new file mode 100644 index 0000000..277abbe --- /dev/null +++ b/data/dbrepo/versions/004_Add_organization_table.py @@ -0,0 +1,29 @@ +from sqlalchemy import MetaData, Table, Column, Integer, Unicode, ForeignKey +from migrate import migrate_engine +from migrate.changeset.schema import create_column +from gnuviechadmin.config import config + +dbschema = None +if 'database.schema' in config: + dbschema = config['database.schema'] + +meta = MetaData(migrate_engine) +client = Table('client', meta, schema = dbschema, autoload = True) +organization = Table( + 'organization', meta, + Column('organizationid', Integer, primary_key = True), + Column('name', Unicode(200), nullable = False, unique = True), + schema = dbschema, + useexisting = True) + +def upgrade(): + organization.create() + col = Column('organizationid', Integer, + ForeignKey(organization.c.organizationid), + nullable = True) + create_column(col, client) + + +def downgrade(): + client.c.organizationid.drop() + organization.drop() diff --git a/development.ini b/development.ini index bd6aee7..9e6127d 100644 --- a/development.ini +++ b/development.ini @@ -12,11 +12,11 @@ use = egg:gnuviechadmin#cli # sqlalchemy. The default is an sqlite in memory database which is not # very usable for a real installation. # -sqlalchemy.uri = sqlite:///%(here)s/gva.db +sqlalchemy.uri = postgres://localhost/gvatest sqlalchemy.echo = false database.repository = %(here)s/data/dbrepo -migrate.required_version = 3 +migrate.required_version = 4 templatedir = %(here)s/data/templates mailtemplates = %(templatedir)s/mails diff --git a/gnuviechadmin/backend/tables.py b/gnuviechadmin/backend/tables.py index 58c9f2c..27bccb2 100644 --- a/gnuviechadmin/backend/tables.py +++ b/gnuviechadmin/backend/tables.py @@ -19,7 +19,7 @@ # # Version: $Id$ -from sqlalchemy import MetaData, Table +from sqlalchemy import MetaData, Table, Column, Unicode from sqlalchemy.orm import mapper, relation from sqlalchemy.exceptions import NoSuchTableError import sys @@ -68,6 +68,11 @@ Trying automatic versioning.""") dbschema = None if 'database.schema' in config: dbschema = config['database.schema'] + + organization_table = Table( + 'organization', meta, + Column('name', Unicode(200)), + schema = dbschema, autoload = True) (client_table, sysuser_table, domain_table, \ record_table, supermaster_table, mailaccount_table, \