繁体   English   中英

使用Postgresql数据库创建Azure Web App(可以吗?)

[英]Creating an Azure Web App with Postgresql database (is that possible?)

我使用Heroku托管带有postgres后端的Django Web应用程序。 我现在正在利用Azure最近为我提供的大量功能,希望将此Web应用程序迁移到Azure。

但是我对一件事感到困惑:如何以Azure 作为数据库在Azure上创建Django网站? 我成功创建了一个Django网站,并将其连接到git,但是我似乎无法将其数据库更改为postgresql。

因此,当我执行git push azure master ,出现错误: 命令python setup.py egg_info在D:\\ home \\ site \\ wwwroot \\ env \\ build \\ psycopg2中失败,错误代码为1,在psycopg2(postgresql)上失败。

其次,一旦我在Azure Web App上成功安装了postgresql,就需要调整其postgresql.conf文件以调整设置(默认值太低)。 我该怎么做?


该文档仅讨论如何使用Linux而非Azure Web App为Azure VM安装PG: https : //azure.microsoft.com/zh-cn/documentation/articles/virtual-machines-linux-postgresql/

Azure Web Apps Service是一种Pa​​aS,可提供多种服务来承载您的网站应用程序。 并且我们具有在其上安装PostgreSQL的有限权限。

当前,要在Azure上托管PostgreSQL,您可以使用@theadriangreen提到的带有Linux的虚拟机。 而且,您可以使用SSH命令ssh user@VMhost在Linux VM上进行远程设置,并设置PG配置。 您可以参考YoLinux教程:PostgreSQL数据库和Linux,以获取有关Linux上PG的更多信息。

另外,您可以在Azure附加市场中创建包含PostgreSQL映像的docker包含。

登录预览管理门户,在搜索栏中单击“新建=>搜索”“ postgres”,即可找到docker提供的postgres服务。

在此处输入图片说明

您还可以通过SSH远程到此VM,以设置PG配置。

如果要直接与PG服务器建立TCP连接,则需要在入站安全规则中添加5432端口。

在上面创建的VM服务器的“所有设置”中,单击“网络接口” =>单击正在使用的接口=>单击正在使用的网络安全组名称,您可以在设置页面中找到入站安全规则。

在此处输入图片说明

然后,您可以测试PG服务的连接:

import psycopg2

try:
    conn = psycopg2.connect(database="postgres", user="postgres", password="{password}", host="{host_ip}", port="5432")
    print "Opened database successfully"

    cur = conn.cursor()

    cur.execute("SELECT ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]");
    rows = cur.fetchall()
    print(rows)

    conn.commit()
    print "Records created successfully";
    conn.close()
except Exception, e:
    print "I am unable to connect to the database"

由于数据库是由另一项服务提供的,因此Azure Web Apps仅提供Web应用程序。 通常,这可以是提供SQL Server数据库即服务的Azure SQL,也可以是提供MySQL的ClearDB。

因此,要使Django应用程序与Postgres一起启动并运行,您将需要在某个地方部署Postgres DB。 最初,您可以尝试将settings.py指向Heroku Postgres DB,但是您可能会在DB端遇到一些防火墙设置。

如果您要按照链接( https://azure.microsoft.com/zh-cn/documentation/articles/virtual-machines-linux-postgresql/ )中的步骤进行操作,则可以将该实例用作Postgres数据库并进行调整您的settings.py文件指向该机器。 由于您拥有机器,因此您也可以更改postgresql.conf。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM