Esempio n. 1
0
def db_connect(name):
    """
    Performs database connection using database settings from settings.py.
    Returns sqlalchemy engine instance
    """
    database = APSWDatabase(None)
    database.init(name,
                  timeout=60,
                  pragmas=(('journal_mode', 'wal'), ('cache_size',
                                                     -1024 * 64)))
    database.connect()
    #database.create_tables([AuthorFlair, Author, Url, Domain, Subreddit, Submission, SubmissionCommentIDs, Comment, SubmissionLinks, CommentLinks])
    return database
Esempio n. 2
0
def peewee_database():
    from playhouse.apsw_ext import APSWDatabase

    from cozy.db.artwork_cache import ArtworkCache
    from cozy.db.book import Book
    from cozy.db.offline_cache import OfflineCache
    from cozy.db.settings import Settings
    from cozy.db.storage import Storage
    from cozy.db.storage_blacklist import StorageBlackList
    from cozy.db.track import Track

    models = [
        Track, Book, Settings, ArtworkCache, Storage, StorageBlackList,
        OfflineCache
    ]

    print("Setup database...")
    db_path = '/tmp/cozy_test.db'
    test_db = APSWDatabase(db_path, pragmas=[('journal_mode', 'wal')])
    test_db.bind(models, bind_refs=False, bind_backrefs=False)
    test_db.connect()
    test_db.create_tables(models)

    path_of_test_folder = os.path.dirname(os.path.realpath(__file__)) + '/'

    with open(path_of_test_folder + 'books.json') as json_file:
        book_data = json.load(json_file)

    with open(path_of_test_folder + 'tracks.json') as json_file:
        track_data = json.load(json_file)

    Book.insert_many(book_data).execute()
    for chunk in chunks(track_data, 25):
        Track.insert_many(chunk).execute()

    print("Provide database...")
    yield test_db

    print("Teardown database...")
    test_db.drop_tables(models)
    test_db.close()
    os.remove(db_path)
Esempio n. 3
0
def prepare_db():
    from playhouse.apsw_ext import APSWDatabase
    from cozy.db.artwork_cache import ArtworkCache
    from cozy.db.book import Book
    from cozy.db.offline_cache import OfflineCache
    from cozy.db.settings import Settings
    from cozy.db.storage import Storage
    from cozy.db.storage_blacklist import StorageBlackList
    from cozy.db.track import Track

    models = [
        Track, Book, Settings, ArtworkCache, Storage, StorageBlackList,
        OfflineCache
    ]

    print("Setup database...")

    db_path = '/tmp/cozy_test.db'
    test_db = APSWDatabase(db_path, pragmas=[('journal_mode', 'wal')])
    test_db.bind(models, bind_refs=False, bind_backrefs=False)
    test_db.connect()
    test_db.create_tables(models)

    return db_path, models, test_db
Esempio n. 4
0
from playhouse.apsw_ext import APSWDatabase

from gutenbergtozim import logger

# db = SqliteDatabase('gutenberg.db')
timeout = 1000 * 60 * 5 * 16
db = APSWDatabase(
    "gutenberg.db",
    pragmas=(
        ("journal_mode", "WAL"),
        ("cache_size", 10000),
        ("mmap_size", 1024 * 1024 * 32),
    ),
    timeout=timeout,
)
db.connect()
db.execute_sql("PRAGMA journal_mode=WAL;")


class BaseModel(Model):
    @classmethod
    def get_or_none(cls, *query, **kwargs):
        try:
            return cls.get(*query, **kwargs)
        except cls.DoesNotExist:
            return None


class License(BaseModel):
    class Meta:
        database = db
Esempio n. 5
0
from peewee import (Model,  # SqliteDatabase,
                    CharField, BooleanField,
                    IntegerField, ForeignKeyField, TextField)
from playhouse.apsw_ext import APSWDatabase

from gutenbergtozim import logger

# db = SqliteDatabase('gutenberg.db')
timeout = 1000 * 60 * 5 * 16
db = APSWDatabase('gutenberg.db', pragmas=(
    ('journal_mode', 'WAL'),
    ('cache_size', 10000),
    ('mmap_size', 1024 * 1024 * 32)),
    timeout=timeout)
db.connect()
db.execute_sql("PRAGMA journal_mode=WAL;")


class BaseModel(Model):
    @classmethod
    def get_or_none(cls, *query, **kwargs):
        try:
            return cls.get(*query, **kwargs)
        except cls.DoesNotExist:
            return None


class License(BaseModel):

    class Meta:
Esempio n. 6
0
import datetime
import peewee
import yaml
from playhouse.migrate import *
import phonenumbers
from playhouse.apsw_ext import APSWDatabase

if __name__ == "__main__":
    with open("dbconfig.yaml", 'r') as ymlfile:
        config = yaml.load(ymlfile)

    DB_NAME = config.get('sqlite').get('name') + '.db'
    # remove old database if in the current directory
    if os.path.isfile(DB_NAME):
        database = APSWDatabase(DB_NAME, threadlocals=True)
        database.connect()
    else:
        # Check to see what type of database wanted, and creates the type specificed
        if config.get('sqlite').get('type') == 'extended':
            from playhouse.sqlite_ext import SqliteExtDatabase

            database = SqliteExtDatabase(DB_NAME, threadlocals=True)
        elif config.get('sqlite').get('type') == 'apsw':
            from playhouse.apsw_ext import APSWDatabase

            database = APSWDatabase(DB_NAME, threadlocals=True)
        else:
            database = APSWDatabase(DB_NAME, threadlocals=True)

    database.connect()