Django教程:[36]自动更新SAE mysql数据库
我们都知道,django可以不写任何sql语句,只要在models.py文件中定义好模型,就可以通过pyt茑霁酌绡hon manage.py syncdb命令来创建表或者做其他数据库更新。但是当我们使用SAE平台上的mysql数据后,我们该怎样使用这个命令来更改数据库呢?其实也是很简单的。
先在应用文件夹下的settings.py中添加以下代码:它的逻辑是,当代码在SAE平台上运行时,直接使用sae上的数据库;如果是在本地运行代码,需要我们手动决定使用本地数据库还是sae上的数据库。看第二个if语句,我们其条件设置为False就是使用sae平台上的数据库。注意以下代码需要你自己修改ACCESSKEY SECRETKEY APPNAME,这三个变量代表什么呢?接着看。。。![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/84010e2a04e23ea2310de8c92b10bc33ed38c3e1.jpg)
来到你在SAE平台上创建的应用首页
我们可以看到这三个信息,按照这三个信息修改以上代码,至于你需要修改的本地数据库的基本信息,这里就不多说了。![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/b6f0f0f97fbd4c7c28fc74f2b8bad341027d30e6.jpg)
另外我们需要修改的settings.py文件中的数据库信息:![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/23fd63c5cf672b5ff2094d253314f4d0b40327e6.jpg)
设置完成以后,我们可以启动sae的本地开发环境:
如果这个在dos下的命令你不太懂,可以看官方文档:我把你需要看的部分截图给你![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/d2987775f2c4ec991e0c4cb2c3fe1e425c6b07e6.jpg)
之后,我们我们重新打开一个dos窗口,然后cd到你的应用目录:![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/3852f6e5eceeadbced600fc3cd18dfdae53b7be6.jpg)
然后执行python manage.py syncdb,然后你看到一堆这样的东西,就说明你已经更新了sae上的mysql数据库![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/988e1c532f6323859179aa22cce833e038725de6.jpg)
打开sae数据库,可以看一下里面的表是不是有更新了。![Django教程:[36]自动更新SAE mysql数据库](https://exp-picture.cdn.bcebos.com/7a3e980e7c75e5f46cbaa6beb1ceaad7736bbce6.jpg)
以下是用到的settings.py中用到的代码:
if 'SERVER_SOFTWARE' in os.environ:#本地和sae环境使用不同的配置
DOMAIN='http://deltatest.sinaapp.com'
DB_HOST='w.rdc.sae.sina.com.cn'
DB_PORT='3307'
DB_USER=ACCESSKEY
DB_PASS=SECRETKEY
DB_DB='app_APPNAME'
#CACHES_BACKEND=
UEDITOR_UPLOAD={
'BACKEND':'DjangoUeditor.saebackend',
'DOMAIN':'APPNAME',
}
else:
DOMAIN = 'http://localhost:8000'
CACHES_BACKEND = 'django.core.cache.backends.memcached.MemcachedCache'
if False:
DB_HOST='localhost'
DB_PORT=''
DB_USER='本地数据库用户名'
DB_PASS='本地数据库密码'
DB_DB='本地数据库名'
else:
from sae._restful_mysql import monkey
monkey.patch()
DB_HOST='w.rdc.sae.sina.com.cn'
DB_PORT='3307'
DB_USER='ACCESSKEY'
DB_PASS='SECRETKEY'
DB_DB='app_APPNAME'