-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathsqlalchemy-tool.py
More file actions
54 lines (41 loc) · 1.68 KB
/
sqlalchemy-tool.py
File metadata and controls
54 lines (41 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import sqlalchemy as sa
from sqlalchemy.orm import sessionmaker
ECHO = True
ENGINE = None
SESSION_MAKER = None
print sa.__version__
def create_engine(connection=None, echo=False, recreate=False):
global ENGINE
global SESSION_MAKER
if not connection:
connection = DEFAULT_CONNECTION
if recreate:
ENGINE = None
SESSION_MAKER = None
if not ENGINE:
ENGINE = sa.create_engine(connection, echo=echo)
print 'Create engine (connection=%s, echo=%s)' % (connection, echo)
return ENGINE
def get_session(connection=None, echo=False,
autocommit=True, expire_on_commit=False,
recreate=False):
global SESSION_MAKER
engine = create_engine(connection, echo, recreate)
if not SESSION_MAKER:
SESSION_MAKER = sessionmaker(bind=engine,
autocommit=autocommit,
expire_on_commit=expire_on_commit)
print 'Create session'
return SESSION_MAKER()
def get_session_wrapper(database=None, backend=None,
echo=False, autocommit=True, expire_on_commit=False,
recreate=True):
database = database or 'neutron_nec'
backend = backend or 'mysql'
connection = CONNECTION_FORMAT % {'database': database, 'backend': backend}
return get_session(connection, echo, autocommit, expire_on_commit, recreate)
from neutron.db import models_v2 as core
from neutron.plugins.nec.db import models as nmodels
session = get_session()