Django内存中的SQLite3数据库

时间:2011-07-06 16:20:35

标签: python database django sqlite in-memory-database

我正在尝试在Django中拥有一个纯粹的内存中SQLite数据库,并且我认为我有它工作,除了一个恼人的问题:

我需要在使用数据库之前运行syncdb,这不是太大的问题。问题是它需要创建一个超级用户(我认为在auth_user表中)需要交互式输入

出于我的目的,我不想要这个 - 我只是想在内存中创建它,而我真的不关心密码,因为我是唯一的用户。 :)我只想在某处硬编码密码,但我不知道如何以编程方式执行此操作。

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

使用 - noinput 选项可以抑制django-admin.py的任何输入或提示,例如

./manage.py syncdb --noinput

这将跳过初始syncdb运行时的超级用户创建,因此需要您使用fixture或自定义方法创建一个post_syncdb信号的接收器。

请参阅django-admin.py and manage.py in the Django docs

  

<强> - noinput

     

使用--noinput选项来抑制   所有用户提示,例如“你是   确定?“确认消息。这是   正如django-admin.py一样有用   以无人值守的方式执行,自动化   脚本。

答案 1 :(得分:3)

django.contrib.auth.management.create_superuser信号中断开post_syncdb,然后连接您自己的功能,该功能会使用所需的密码创建并保存新的超级用户User

答案 2 :(得分:1)