迁移数据库 - yann学长的运维开发指南33

in #devops8 years ago

title: 迁移数据库 - yann学长的运维开发指南33
tags:

  • python
    categories:
  • 运维开发
    keywords: 'python,tdd,web开发'
    description: 操作数据库
    date: 2018-05-24 21:21:09

说明

目前的进度及后续的课程
http://www.iamyann.com/images/0524/20180524214623.png
(html comment removed: more)

介绍

上节说到修改模板以显示多条记录,但并没有说完,现在补充余下的部分.

今天的具体内容如下:

  • 代办事项传入模板
  • 看不懂错误时换个方式
  • 数据库位置
  • 数据库迁移
  • 修改模板中的序号表示
  • 一点点小问题

代办事项传入模板

修改视图文件,传值到模板

vi lists/views.py

http://www.iamyann.com/images/0524/20180524212629.png

再次运行测试

python functional_tests.py

AssertionError: 'To-Do' not found in 'OperationalError at /'

看不懂错误时换个方式

在浏览器下打开页面 http://localhost:8000

no such table: lists_item

渲染完毕的浏览器报出了故障的原因:
找不到lists_item表
需要做数据库迁移了

数据库位置

数据库迁移只是一个说法,其实是用之前写好的建表文件在固定的地方来建立数据库

建库的位置是写在配置文件里的,默认在项目的基础目录

vi superlists/settings.py

http://www.iamyann.com/images/0524/20180524213414.png

数据库迁移

在项目的基础目录运行数据库迁移命令,其实大多数命令都是在这个目录下运行的

python manage.py migrate

刷新刚才打开的浏览器

AssertionError: '2: Use peacock feathers to make a fly' not found in ['1: Buy
peacock feathers', '1: Use peacock feathers to make a fly']

序号还是不对

修改模板中的序号表示

forloop.counter标签

vi lists/templates/home.html

http://www.iamyann.com/images/0524/20180524214002.png

再次运行,测试成功

一点点小问题

再次确认测试成功.结果发现每测一次,页面会多两条相同的数据

对于这个问题,目前先手动处理下

rm db.sqlite3
python manage.py migrate --noinput

预告

漫长的第五章终于完成了,周末我打算做一个大纲并附上链接,希望自己不要摸鱼^^

http://hero.iamyann.com/blog_webchat.jpg