Exemplo n.º 1
0
    def upgrade(op):
        from sqlalchemy_api_handler.mixins.activity_mixin import ActivityMixin
        db = Activate.get_db()
        versioning_manager.init(db.Model)
        versioning_manager.transaction_cls.__table__.create(op.get_bind())

        class Activity(ActivityMixin, Activate,
                       versioning_manager.activity_cls):
            __table_args__ = {'extend_existing': True}

            id = versioning_manager.activity_cls.id

        Activity.__table__.create(op.get_bind())
        op.add_column('transaction', sa.Column('actor_id', sa.BigInteger()))
Exemplo n.º 2
0
def install():

    versioning_manager.init(Model)

    orm.configure_mappers()
    # FIXME: This is seriously ugly... (based on https://github.com/kvesteri/postgresql-audit/issues/21)
    try:
        versioning_manager.transaction_cls.__table__.create(db.session.get_bind())
    except ProgrammingError:
        pass
    try:
        versioning_manager.activity_cls.__table__.create(db.session.get_bind())
    except ProgrammingError:
        pass
    db.create_all()
    db.engine.execute("CREATE INDEX IF NOT EXISTS idx_activity_objid ON activity(cast(changed_data->>'id' AS INT));")
    db.session.commit()
Exemplo n.º 3
0
from flask import current_app as app
from postgresql_audit.flask import versioning_manager
import sqlalchemy as sa
from sqlalchemy.exc import ProgrammingError

from utils.attr_dict import AttrDict
from utils.config import IS_DEV

app.config[
    'SQLALCHEMY_DATABASE_URI'] = 'postgresql://*****:*****@postgres/pass_culture'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
#app.config['SQLALCHEMY_ECHO'] = IS_DEV
app.db = SQLAlchemy(app)
app.model = AttrDict()

versioning_manager.init(app.db.Model)
import models.versioned_mixin

import models.api_errors
import models.pc_object

import models.deactivable_mixin
import models.extra_data_mixin
import models.has_address_mixin
import models.has_thumb_mixin
import models.providable_mixin

import models.booking
import models.event
import models.event_occurence
import models.mediation
Exemplo n.º 4
0
import os
from flask_sqlalchemy import SQLAlchemy
from postgresql_audit.flask import versioning_manager

db = SQLAlchemy(engine_options={
    'pool_size': int(os.environ.get('DATABASE_POOL_SIZE', 3)),
})

versioning_manager.init(db.Model)
Exemplo n.º 5
0
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from postgresql_audit.flask import versioning_manager

# docker run --rm  --name pg-docker -e POSTGRES_PASSWORD=docker -d -p 5432:5432 -v $HOME/Projects/postgresql-audit-play/postgres:/var/lib/postgresql/data  postgres:11.5
engine = create_engine('postgresql://*****:*****@localhost:5432/karl_test',
                       echo=True)

Base = declarative_base()

versioning_manager.init(Base)

session = sessionmaker(bind=engine)()
def activity_cls(db):
    versioning_manager.init(db.Model)
    yield versioning_manager.activity_cls
    versioning_manager.remove_listeners()