예제 #1
0
logging.info("\n")
logging.info("** starting new OMS migration: "+str(datetime.datetime.now())+" **")


""" establish multiple database connections (for old and new handbook db)
(loosely) following recipe at: http://elixir.ematia.de/trac/wiki/Recipes/MultipleDatabases
"""

old_engine = create_engine("mysql://*****:*****@localhost:3306/dbo")
old_session = scoped_session(sessionmaker(autoflush=True, bind=old_engine))
old_metadata = metadata
old_metadata.bind = old_engine

new_engine = create_engine("mysql://*****:*****@localhost:3306/newhandbook")
new_session = scoped_session(sessionmaker(autoflush=True, bind=new_engine))
new_metadata = ThreadLocalMetaData()
new_metadata.bind = new_engine

""" MODEL DATA """

# old
class Distributorship(Entity):
	""" dbo/distributorship """
	using_options(metadata=old_metadata, session=old_session, tablename="distributorship", autoload=True)

class DistributorshipUserInRole(Entity):
	""" dbo/distributorshipuserinrole """
	using_options(metadata=old_metadata, session=old_session, tablename="distributorshipuserinrole", autoload=True)

class DistributorshipZipCode(Entity):
	""" dbo/distributorzipcode """
예제 #2
0
파일: whois.py 프로젝트: khanku/bgp-ranking
import os
precdir = os.path.realpath(os.curdir)
os.chdir(os.path.dirname(__file__))
import ConfigParser
config = ConfigParser.RawConfigParser()
config.optionxform = str
config.read("../../etc/bgp-ranking.conf")
login = config.get('mysql','login')
password = config.get('mysql','password')
host = config.get('mysql','hostname')
dbname = config.get('mysql','dbname_whois')
os.chdir(precdir) 

whois_engine = create_engine( 'mysql://' + login + ':' + password + '@' + host + '/' + dbname )
WhoisSession = scoped_session(sessionmaker(bind=whois_engine))
whois_metadata = ThreadLocalMetaData()
whois_metadata.bind = whois_engine
import re

INET6_ADDRSTRLEN = 46

class Assignations(Entity):
    """ 
    Ip assignations
    """
    block = Field(Unicode(INET6_ADDRSTRLEN), default=unicode(''))
    whois = Field(UnicodeText, required=True)
    pre_options = Field(UnicodeText, default=unicode(''))
    post_options = Field(UnicodeText, default=unicode(''))
    keepalive_options = Field(UnicodeText, default=unicode(''))
    port = Field(Integer, default=43)
예제 #3
0
from sqlalchemy.engine.url import URL
from elixir import Unicode, DateTime, String, Integer, UnicodeText, Text, Boolean, Float
from elixir import Entity, Field, using_options, using_table_options
from elixir import OneToMany, ManyToOne, ManyToMany, OneToOne
from elixir import setup_all, entities, create_all
from elixir.options import using_table_options_handler  #using_table_options() can only work inside Entity-inherited class.
from sqlalchemy import UniqueConstraint, create_engine
from sqlalchemy.schema import ThreadLocalMetaData
from sqlalchemy.orm import scoped_session, sessionmaker
from datetime import datetime

from pymodule.db import ElixirDB

__session__ = scoped_session(sessionmaker(autoflush=False, autocommit=True))
__metadata__ = ThreadLocalMetaData()


class README(Entity):
    #2008-08-07
    title = Field(String(2000))
    description = Field(String(60000))
    created_by = Field(String(128))
    updated_by = Field(String(128))
    date_created = Field(DateTime, default=datetime.now)
    date_updated = Field(DateTime)
    using_options(tablename='readme',
                  metadata=__metadata__,
                  session=__session__)
    using_table_options(mysql_engine='InnoDB')
예제 #4
0
# -*- coding: utf-8 -*-

from contextlib import closing
from datetime import timedelta, date

from bcrypt import hashpw, gensalt
from flask import current_app
from itsdangerous import TimedJSONWebSignatureSerializer
from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base, DeferredReflection
from sqlalchemy.orm import backref, relationship
from sqlalchemy.schema import ThreadLocalMetaData

base = declarative_base(cls=DeferredReflection, metadata=ThreadLocalMetaData())


class user(base):
    __tablename__ = 'users'

    password_ = Column('password', String(length=255), nullable=False)

    @property
    def password(self):
        return self.password_

    @password.setter
    def password(self, value):
        self.password_ = hashpw(value.encode('utf-8'), gensalt(10))

    # The token TTL is 86,400 seconds (1 day).
    def get_token(self, expires_in=86400):
예제 #5
0
import os
precdir = os.path.realpath(os.curdir)
os.chdir(os.path.dirname(__file__))
import ConfigParser
config = ConfigParser.RawConfigParser()
config.optionxform = str
config.read("../../etc/bgp-ranking.conf")
login = config.get('mysql','login')
password = config.get('mysql','password')
host = config.get('mysql','hostname')
dbname = config.get('mysql','dbname_ranking')
os.chdir(precdir)

ranking_engine = create_engine( 'mysql://' + login + ':' + password + '@' + host + '/' + dbname, pool_size = 50, pool_recycle=3600, max_overflow=30 )
RankingSession = scoped_session(sessionmaker(bind=ranking_engine))
ranking_metadata = ThreadLocalMetaData()
ranking_metadata.bind = ranking_engine

import datetime 

INET6_ADDRSTRLEN = 46

class IPs(Entity):
    """ 
    Table which contains the IPs 
    """
    ip = Field(Unicode(INET6_ADDRSTRLEN), primary_key=True)
    ip_descriptions = OneToMany('IPsDescriptions')
    using_options(metadata=ranking_metadata, session=RankingSession, tablename='IPs')
    
    def __repr__(self):
예제 #6
0
# -*- coding: utf-8 -*-

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.pool import NullPool
from sqlalchemy.schema import ThreadLocalMetaData

from settings import SQLALCHEMY

engine = create_engine(SQLALCHEMY, convert_unicode=True, echo=False, poolclass=NullPool, strategy='threadlocal')
base = declarative_base(bind=engine, metadata=ThreadLocalMetaData())
session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine, expire_on_commit=True))
예제 #7
0
        if isinstance(d[column.name], date):
            d[column.name] = d[column.name].isoformat()
    return d

mysql = {}
mysql['engine'] = create_engine(
    URL(**dictionary['MYSQL']),
    convert_unicode=True,
    echo=False,
    pool_recycle=15,
    pool_size=25,
    pool_timeout=15,
    strategy='threadlocal',
)
mysql['base'] = declarative_base(
    bind=mysql['engine'], metadata=ThreadLocalMetaData()
)
mysql['base'].to_dictionary = to_dictionary
mysql['session'] = scoped_session(sessionmaker(
    autocommit=False,
    autoflush=False,
    bind=mysql['engine'],
    expire_on_commit=True
))

postgresql = {}
postgresql['engine'] = create_engine(
    URL(**dictionary['POSTGRESQL']),
    convert_unicode=True,
    echo=False,
    pool_recycle=15,
예제 #8
0
from sqlalchemy.schema import ThreadLocalMetaData
from elixir import *
import os, os.path

db_server = 'localhost'
db_user = '******'
db_pass = '******'
db_name = 'quran'
db_prefix = 'db_'

db_mysql_path = 'mysql://%s:%s@%s/%s' %(db_user, db_pass, db_server, db_name)
db_sqlite_path = "sqlite:///"+os.path.expanduser("~/python-modules/quran_quize/db.db")

b_engine = create_engine(db_mysql_path)
b_session = scoped_session(sessionmaker(autoflush=True))
b_metadata = ThreadLocalMetaData() 

__metadata__ = b_metadata
__session__ = b_session

b_metadata.bind = b_engine
b_session.bind = b_engine

class users(Entity):
    using_options(tablename = db_prefix+'users')
    fb_id = Field(Unicode(100))
    fb_user_name = Field(UnicodeText)
    fb_full_name = Field(UnicodeText)
    fb_gender = Field(Unicode(10))
    fb_locale = Field(Unicode(5))
    access_token = Field(UnicodeText)