我的本地 postgresql 数据库 url 的格式是啥?

Posted

技术标签:

【中文标题】我的本地 postgresql 数据库 url 的格式是啥?【英文标题】:What is the form of my local postgresql database url?我的本地 postgresql 数据库 url 的格式是什么? 【发布时间】:2014-09-03 20:38:28 【问题描述】:

我正在阅读烧瓶/sqlalchemy 教程 https://pythonhosted.org/Flask-SQLAlchemy/quickstart.html#a-minimal-application 我将我的数据库 url 配置为: postgres://username:password@localhost:5432/dbname

当我在交互式 python shell 中运行 db.create_all() 时,它不会抛出任何错误,但它也不会做任何事情。

据我了解,应该创建包含三列的 User 表; id、用户名和电子邮件。

from flask import Flask, url_for, render_template 
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://username:password@localhost:5432/dbname'

db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

app.debug = True



@app.route("/")
def hello():
    return render_template('hello.html')

if __name__ == "__main__":
    app.run()

【问题讨论】:

您使用的是哪个驱动程序?司机isn't always optional. @SpencerCooley 你能发布你的psql 查询吗,在那之前你做过create_db() docs.sqlalchemy.org/en/13/core/engines.html#database-urls 【参考方案1】:

尝试在 URL 中使用postgresql 而不是postgres

这是 JDBCSQLAlchemy 文档 (http://docs.sqlalchemy.org/en/rel_0_9/dialects/postgresql.html) 中使用的表单。

【讨论】:

是的,我确实尝试过,但随后我进入 psql 控制台并检查是否创建了任何新表并且没有看到任何内容。 嗯...所以您可以通过 psql... 与这些相同的参数连接... postgres 日志中的任何内容? 需要检查一下。我在 mac os 上使用 postgres.app,不确定这是否会有所不同。刚刚找到这个链接codeinthehole.com/writing/configuring-logging-for-postgresapp 啊。是的,默认情况下,该链接日志记录似乎未启用。我在 Ubuntu 上使用 Postgres,通常是从源代码编译的,所以我对 postgres.app 并不熟悉。它本质上似乎是 Postgres 的盒装版本,带有一些附加组件。 Spencer Cooley - 你必须在 python 中提交才能使更改真正发生(默认情况下应该关闭自动提交)【参考方案2】:

它应该是准确的格式。

app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://postgres:postgres@localhost/DBNAME"

postgres 是用户名,postgres 是密码,localhost 是地址

【讨论】:

我们可以重命名用户名和密码以更明确吗?谢谢

以上是关于我的本地 postgresql 数据库 url 的格式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

春季启动中的postgresql错误

Heroku postgresql 查询在 Heroku 上不起作用,但在本地工作

使用 JDBC 连接到 PostgreSql 的本地实例

PostgreSQL 连接字符串/URL 的格式是啥?

PostgreSQL 中的本地时区偏移量

为本地开发设置 django 和 dj-database-url