Also see How to show table schema for SQLite3 table on the command line
Use this function to find the table schema of a SQLite3 table in Python:
def sqlite_table_schema(conn, name): """Return a string representing the table's CREATE""" cursor = conn.execute("SELECT sql FROM sqlite_master WHERE name=?;", [name]) sql = cursor.fetchone()[0] cursor.close() return sql
Usage example:
print(sqlite_table_schema(conn, 'commands'))
Full example:
#!/usr/bin/env python3 import sqlite3 conn = sqlite3.connect('/usr/share/command-not-found/commands.db') def sqlite_table_schema(conn, name): cursor = conn.execute("SELECT sql FROM sqlite_master WHERE name=?;", [name]) sql = cursor.fetchone()[0] cursor.close() return sql print(sqlite_table_schema(conn, 'commands'))
which prints
CREATE TABLE "commands" ( [cmdID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, [pkgID] INTEGER NOT NULL, [command] TEXT, FOREIGN KEY ([pkgID]) REFERENCES "pkgs" ([pkgID]) )