SAE Django如何syncdb到线上数据库

使用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/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码

Pingbacks已关闭。

评论
  1. afei afei 发布于 2014年12月7日 20:37 #

    请问,怎么将本地的数据同步到线上呢?
    还有你的sae上的pv和百度统计的pv 差距大么?我的差距有千倍呢

  2. 在线疯狂 在线疯狂 发布于 2014年12月8日 20:37 #

    比较安全的方法是把本地的数据库导出成SQL脚本,然后使用SAE的phpMyAdmin导入。差别很大,SAE统计的访问数包括机器访问,所以要大于百度统计的数值。

张贴您的评论