Я пытаюсь получить доступ к базе данных sqlite3, которая есть в моем проекте Django, из внешнего скрипта, который не является частью проекта.
Однако следующее вернет пустой список:
con = sqlite3.connect('database.db')
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(cursor.fetchall())
Хотя я уже сохранил некоторые модели в базе данных.Чтобы проверить имена таблиц, я использую следующее в оболочке Django:
>>> tables = connection.introspection.table_names()
>>> seen_models = connection.introspection.installed_models(tables)
>>> seen_models
{<class 'django.contrib.auth.models.Permission'>, <class 'django.contrib.sessions.models.Session'>, <class 'django.contrib.contenttypes.models.ContentType'>, <class 'explorer_api.models.Athlete'>, <class 'django.contrib.admin.models.LogEntry'>, <class 'django.contrib.auth.models.Group'>, <class 'explorer_api.models.Activity'>, <class 'django.contrib.auth.models.User'>}
>>> tables
['auth_group', 'auth_group_permissions', 'auth_permission', 'auth_user', 'auth_user_groups', 'auth_user_user_permissions', 'django_admin_log', 'django_content_type', 'django_migrations', 'django_session', 'explorer_api_activity', 'explorer_api_athlete']
Я не указал явно имена таблиц в Meta модели, поэтому я предполагаю, что имена таблиц appname_modelname
(explorer_api_activity
иexplorer_api_athlete
).
Но почему пустой список?