使用SAE部署Django应用时,如何将应用的数据库同步至线上?
在本地开发环境中,如下配置数据库,即可执行 python manage.py syncdb 直接syncdb到线上数据库。
# 线上数据库的配置
MYSQL_HOST = 'w.rdc.sae.sina.com.cn'
MYSQL_PORT = '3307'
MYSQL_USER = 'ACCESSKEY'
MYSQL_PASS = 'SECRETKEY'
MYSQL_DB = 'app_APP_NAME'
from sae._restful_mysql import monkey
monkey.patch()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': MYSQL_DB,
'USER': MYSQL_USER,
'PASSWORD': MYSQL_PASS,
'HOST': MYSQL_HOST,
'PORT': MYSQL_PORT,
}
}
需要注意的是,使用上述方法需要首先安装SAE的Python本地开发环境,Github项目地址:https://github.com/sinacloud/sae-python-dev-guide
另外,上述功能还比较"buggy",所以更加稳妥的数据库同步方案为:在本地执行数据库同步,将数据库变更以SQL的形式导出,然后使用SAE提供的phpmyadmin等工具进行导入。
本文链接:http://bookshadow.com/weblog/2014/10/07/sae-django-syncdb/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。
afei 发布于 2014年12月7日 20:37 #
请问,怎么将本地的数据同步到线上呢?
还有你的sae上的pv和百度统计的pv 差距大么?我的差距有千倍呢
在线疯狂 发布于 2014年12月8日 20:37 #
比较安全的方法是把本地的数据库导出成SQL脚本,然后使用SAE的phpMyAdmin导入。差别很大,SAE统计的访问数包括机器访问,所以要大于百度统计的数值。