def prepare_db(): from playhouse.sqliteq import SqliteQueueDatabase 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 = SqliteQueueDatabase(db_path, pragmas=[('journal_mode', 'wal')]) test_db.bind(models, bind_refs=False, bind_backrefs=False) test_db.connect() test_db.create_tables(models) test_db.stop() test_db.start() return db_path, models, test_db
from peewee import * from playhouse.sqliteq import SqliteQueueDatabase db = SqliteQueueDatabase('db.sqlite3', use_gevent=False, # Use the standard library "threading" module. autostart=False, # The worker thread now must be started manually. queue_max_size=64) ALAMER = "df548f-61ac83-624ea4" class Items(Model): item_id = IntegerField() cost = IntegerField() class Meta: database = db db.start() db.connect() # db.drop_tables([Items]) # db.create_tables([Items]) # db.stop()
os.remove("reproduce.db") if os.path.exists("peewee.db"): os.remove("peewee.db") db = SqliteQueueDatabase(None) class TestModel(Model): test = CharField(null=True) class Meta(object): database = db db.init("reproduce.db") TestModel.create_table() was_started = db.start() print("Database was started: %s" % was_started) was_stopped = db.stop() print("Database was stopped: %s" % was_stopped) print("Database is stopped: %s" % db.is_stopped()) db.close() is_closed = db.is_closed() print("Database is closed: %s" % is_closed) try: os.unlink("reproduce.db") print("Database file was deleted") except Exception: print("Database file still locked")