如何查看django sqlite3 db的数据库和模式

oaxa6hgo  于 2023-02-09  发布在  SQLite
关注(0)|答案(6)|浏览(240)

我是django框架的新手。
我试着按照djangogirls的教程创建一个简单的博客。
在这里,默认情况下,我们将sqlite3作为默认数据库引擎:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

我也试了一些ORM queries,甚至performed some row sql queries
在我的django项目中,我有这个db.sqlite3文件:

blog  db.sqlite3  env  manage.py  mysite

**我的问题:**如何知道django在这个db.sqlite3中创建的模式(我知道mysql,在mysql中我可以看到每个数据库和表的细节,所以在这里我只想知道sqlite中的更多东西)

我的系统中有sqlite3,我尝试了.database命令,但它只显示:

seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main
qvsjd97n

qvsjd97n1#

后藤数据库所在的文件夹,然后

sqlite3  db.sqlite3

然后

.tables

或架构
这取决于你想要什么。除了直接调用sqlite3,你可以

python manage.py dbshell

然后键入sqlite命令。
如果您使用的是遗留数据库,您可以使用

python manage.py inspectdb

请访问https://docs.djangoproject.com/en/3.0/ref/django-admin/#django-admin-inspectdb获取更多信息。
但是请帮你自己一个忙,买一个GUI数据库客户端。当你有一个的时候,生活就容易多了。

vulvrdjw

vulvrdjw2#

我花了一个小时的时间来复制Django shell中的DESCRIBE表,我想我已经破解了它。我希望这对其他人有用。
在终端中-输入以下命令。

python3 manage.py dbshell
.tables

找到要查找的表的名称,然后运行以下命令:

.header on
.mode column
pragma table_info('table you are looking for');

不要忘记最后一条指令中的分号。

hmtdttj4

hmtdttj43#

首先,运行下面的命令:

python manage.py dbshell

访问sqlite3命令行客户端,如下所示:

然后,运行以下命令:

.table

或者运行下面的命令:

.tables

要显示SQLite中的所有表格,如下所示:

然后,运行以下命令:

.schema --indent store_product

显示**“store_product”表的模式**,如下所示:

Buy me a coffee!!

wb1gzix0

wb1gzix04#

您可以使用以下命令获取所创建数据库的SQL脚本。
python manage.py sqlmigrate app_label migration_name

niknxzdl

niknxzdl5#

您可以在线查看db.sqlite文件。
sqlite Online
只需上传您的文件到那里,您就可以看到您的表,这是在您的db.sqlite文件。

6qfn3psc

6qfn3psc6#

我只想补充一点,有人可以在my_project_name〉my_app_name〉migrations下找到迁移,通常您会选择数量最大的迁移。
那么命令应该是这样的:python manage.py sqlmigrate my_app_name number

相关问题