首页 > 数据库技术 > 详细

sqlite可视化工具以及django-South

时间:2014-08-07 22:04:17      阅读:1168      评论:0      收藏:0      [点我收藏+]

在linux系统下想要可视化sqlite的办法

一:安装sqlitebrowser:

  sudo apt-get install sqlitebrowser

二:在终端提示符后输入sqlitebrowser启动图形界面:

bubuko.com,布布扣

bubuko.com,布布扣

 

django的syncdb命令缺陷在于并不能将模型的修改或删除同步到数据库,因此造成了比较大的不方便,下面我们来介绍一个高大上的工具South:

第一步安装South。

第二步将south放在installed中:

bubuko.com,布布扣

第三步syncdb,建立south表,成功后会多出一个表并给出如下提示

bubuko.com,布布扣

bubuko.com,布布扣

此时我们新建一个app ‘southtut’,在models.py中写入:

bubuko.com,布布扣

敲入命令:./manage.py schemamigration southtut --initial

bubuko.com,布布扣

选中shift+enter:输入southtut --initial,终端显示

bubuko.com,布布扣

此时在app下多了一个文件夹用来存档:

bubuko.com,布布扣

此时sqlite数据库里面尚无Knight表,这时需要合并

bubuko.com,布布扣

输入app名称例如southtut,这是合并结束,数据库里出现这个表格

bubuko.com,布布扣

如果Knight有改动的话,例如

bubuko.com,布布扣

这时输入命令:./manage.py schemamigration southtut --auto

bubuko.com,布布扣

bubuko.com,布布扣

从输出的提示可以看到, south已经为你增加了新的迁移记录文件 (0002_auto__add_field_knight_dances_whenever_able.py), south的命名方式是序列号+所做的更改. 接下来, 我们根据提示, 使用migrate命令修改数据库:

bubuko.com,布布扣

bubuko.com,布布扣

此时就将改动保存至数据库了。

我们再改动一下,增加一列:

bubuko.com,布布扣

此时再执行schemamigration, 会出现一些没有见过的选择:

bubuko.com,布布扣

其中选项1意思是, 放弃本次自动迁移, 并退出, 你可以在field中添加default值后再执行schemamigration. 选项2的意思是, 为已经存在的行添加一个一次性的值. 当你选择2时, 会出现python提示行, 你可以使用python的datetime模块:

bubuko.com,布布扣

此时你可以查看自动生成的迁移记录文件, south会为新建的栏添加默认值0, 这样数据库才不会报错. 然后我们再执行migrate即可。

 

 

如果在项目起始的时候没有使用south,那我们可以按以下方式启用:

一:加入south,syncdb创建south_igratitonhistory表。

二:python manage.py convert_to_south youappname在youappname目录下面创建migrations目录

以后即可正常使用。

bubuko.com,布布扣

 

另外south还提供回溯功能:在migrate中指定app及回溯py文件即可:manage.py migrate southtut 0001_initial.py:

bubuko.com,布布扣

 如果South在同步数据库的过程中出现错误,则migrations目录下面对应此次更改的python文件不会被执行,可以运行python manage.py migrate --list查看没有执行的py文件,文件名前面没有*表示该文件对应的更改没有反应到数据库,只需删除掉这些有问题的migrate,参照错误提示修改 models再同步即可,也可以直接更改对应的py文件修复错误

bubuko.com,布布扣

 

深入化数据迁移:

数据迁移是用来改变你的数据库中存储的数据匹配一个新的模式,或特性。

http://www.cnblogs.com/BeginMan/p/3325897.html

demo:

http://blog.csdn.net/watsy/article/details/11965019

 

 

1)创建一个没有数据库的新项目时

    1、创建数据库

    2、将south添加到INSTALLED_APPS

    3、运行syncdb命令,它将django和south的数据表加入到数据库中

    4、将你创建的apps添加到INSTALLED_APPS

    5、对每个app分别运行“python manage.py schemamigration app_name --initial”,它将在每个app的目录下创建migration目录和相应的文件

    6、然后运行“python manage.py migrate app_name”,这一步将app的数据表加入到数据库中

  2)在带有数据库的已存项目中使用south

    1、将south加入到INSTALLED_APPS中

    2、运行syncdb,它将south的数据表加入到数据库中

    3、对每个app分别运行python manage.py schemamigration app_name --initial,它将在每个app的目录下创建migration目录和相应的文件

    4、对每个app分别运行“python manage.py migrate app_name 0001 --fake”,该命令不会对数据库做任何操作,只是欺骗一下south,让它在south_migrationhistory表中添加一些记录以便于下次你想创造migration文件的时候所有东西都已搞定。

  3、在没有数据库的已存项目中使用south

    1)创建数据库

    2)将south加入到INSTALLED_APPS中

    3)对每个app分别运行“python manage.py schemamigration app_name --initial”,它将在每个app的目录下创建migration目录和相应的文件

    4)运行syncdb,它将所有没有migrations的apps加入到数据库中

    5)然后运行“python manage.py migrate”命令,它将对你的所有apps运行迁移操作。

sqlite可视化工具以及django-South,布布扣,bubuko.com

sqlite可视化工具以及django-South

原文:http://www.cnblogs.com/tuifeideyouran/p/3897965.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!