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
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)
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
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
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:
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()