Initialize database schema.
(self)
| 45 | return conn |
| 46 | |
| 47 | def _init_db(self) -> None: |
| 48 | """Initialize database schema.""" |
| 49 | conn = self._get_connection() |
| 50 | try: |
| 51 | cursor = conn.cursor() |
| 52 | cursor.execute( |
| 53 | """ |
| 54 | CREATE TABLE IF NOT EXISTS lock_holders ( |
| 55 | lock_name TEXT NOT NULL, |
| 56 | owner_pid INTEGER NOT NULL, |
| 57 | lock_mode TEXT NOT NULL CHECK(lock_mode IN ('read', 'write')), |
| 58 | operation TEXT NOT NULL DEFAULT 'lock', |
| 59 | hostname TEXT NOT NULL DEFAULT '', |
| 60 | acquired_at REAL NOT NULL, |
| 61 | PRIMARY KEY (lock_name, owner_pid) |
| 62 | ) |
| 63 | """ |
| 64 | ) |
| 65 | cursor.execute( |
| 66 | "CREATE INDEX IF NOT EXISTS idx_lock_name ON lock_holders(lock_name)" |
| 67 | ) |
| 68 | conn.commit() |
| 69 | finally: |
| 70 | conn.close() |
| 71 | |
| 72 | def try_acquire( |
| 73 | self, |
no test coverage detected