| 1 | |
|---|
| 2 | import sqlalchemy as sa |
|---|
| 3 | import sqlalchemy.orm as orm |
|---|
| 4 | import models |
|---|
| 5 | |
|---|
| 6 | class Schema(object): |
|---|
| 7 | |
|---|
| 8 | """create engine to our postgres database""" |
|---|
| 9 | engine = sa.create_engine('postgres://postgres:postgres@localhost/testVector') |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | #-------SESSION--------------------------------------- |
|---|
| 14 | def create_session(self): |
|---|
| 15 | """link session to an engine""" |
|---|
| 16 | Session=orm.scoped_session(orm.sessionmaker(bind=self.engine)) |
|---|
| 17 | |
|---|
| 18 | """create a session""" |
|---|
| 19 | one_session=Session() |
|---|
| 20 | return one_session |
|---|
| 21 | #----------------------------------------------------- |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | #-------SCHEMA--------------------------------------------------- |
|---|
| 25 | def createSchema(self): |
|---|
| 26 | |
|---|
| 27 | metadata = sa.MetaData() |
|---|
| 28 | self.testVector= sa.Table('vector', metadata, |
|---|
| 29 | sa.Column('gid', sa.integer, primary_key=True), |
|---|
| 30 | sa.Column('area', sa.numeric), |
|---|
| 31 | sa.Column('perimeter', sa.numeric), |
|---|
| 32 | sa.Column('objectid', sa.bigint), |
|---|
| 33 | sa.Column('objectorig', sa.charactervarying(20)), |
|---|
| 34 | sa.Column('objectval', sa.charactervarying(20)), |
|---|
| 35 | sa.Column('yearofchan', sa.integer), |
|---|
| 36 | sa.Column('the_geom', sa.geometry)) |
|---|
| 37 | #---------------------------------------------------------------- |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | #-------MAPPING-------------------------------------------- |
|---|
| 41 | def createMappers(self): |
|---|
| 42 | """delete existing mapping""" |
|---|
| 43 | orm.clear_mappers() |
|---|
| 44 | |
|---|
| 45 | """create new mapping""" |
|---|
| 46 | orm.mapper(models.TestVector, self.testVector) |
|---|
| 47 | #---------------------------------------------------------- |
|---|