2013-06-25 26 views
3

听起来相当简单,但我一直试图做几天,现在已经击中了一堵砖墙。下面我列出了迄今为止的尝试,在所有情况下,它在本地运行时都能够完美运行,但是一旦部署到Azure就会失效。请注意,我使用Azure网站而不是虚拟机(主要是因为成本影响 - 我知道使用虚拟机很可能会解决问题)。我发现完成这项工作的唯一方法是使用在项目中部署的sqlite数据库。是否可以在使用数据库的Azure网站上创建Django应用程序?

事情我已经尝试:

1)创建一个使用蔚蓝伙伴clearDB MySQL数据库。 'manage.py syncdb'工作正常,可以运行并使用'manage.py runserver'在本地使用该站点。部署到天蓝色,并导致Python-MySqlDb未解析的导入失败。

2)创建一个SQLAzure数据库并使用django-pyodbc-azure从django进行连接。同样,syncdb/runserver在本地正常工作,部署到Azure可为dbapi模块提供未解析的导入。 3)使用sqllite3作为数据库引擎 - 在两种情况下都能正常工作,但没有冗余和(看起来)缓慢的数据访问。

查看在Azure网站上部署Django应用程序的教程,它们都没有涉及数据库的任何细节,只是停止在创建Hello World!页。我指的是:thisthis

我们正在尝试部署的网站正在保留的实例上运行。我用Django 1.4和1.5都尝试了这一切。我使用virtualenv/pip来确保所有的依赖关系都包含在我正在部署的站点包中,所有这些都包含在git存储库中。已经通过FTP去验证所有需要的文件正在上传。

SURELY - 必须有一种方法来正确设置它?如果没有,将Django作为天蓝色网站的特征看起来完全没有意义。

任何帮助非常感谢!

编辑

回溯从对clearDB解决方案Azure的错误日志:

 File "D:\home\site\wwwroot\site-packages\django\utils\importlib.py", line 35, in import_module 
    __import__(name) 
    File "D:\home\site\wwwroot\site-packages\django\db\backends\mysql\base.py", line 17, in <module> 
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) 
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb 
ErrorCode Access is denied. 
(0x5) 

回答

1

我有Django和MySQL在Azure上工作。 MySQLdb模块不仅包含MySQLdb目录。它还包含4个平台特定的文件,以_mysql...开头。确保在推送到Azure时包含这些文件。如果你不知道你的Django项目将在本地工作,但不是远程工作。您不需要使用纯Python Python适配器。

这是一个演练:How to host your Django apps on Azure for free

+0

谢谢马特 - 我会仔细阅读文章 – bharling

0

解决 - 种:

使用纯Python MySQL驱动的作品(如我种猜测它可能,这是由天蓝色的环境限制引起的)

供将来参考 - 这个项目整理这一切对我来说:

https://github.com/jloic/django-mysql-pymysql

注:天青似乎没有拿起站点包蟒蛇蛋,所以我不得不解压到站点包和tadaa它的所有工作。

下一步是尝试使用cython版本,虽然网站的速度看起来很好。

+0

这非常有帮助。你如何在Azure网站上运行syncdb? – Hat

+0

与通常情况下相同的方式 - 如果项目设置为使用与在azure上运行的服务器相同的mysql服务器,则可以从本地计算机的开发环境运行它。我不能推荐南部,尽管不是使用syncdb! – bharling

相关问题