0

私はすべてweb.pyとpeeweeに基づいた小さなものを持っています。heroku へのデプロイはうまくいき、DB を実行していますが、heroku postgress db を使用するように peewee を設定するにはどうすればよいですか?

peewee のドキュメントには、有用なものは何も明らかにされていませんhttp://peewee.readthedocs.org/en/latest/peewee/api.html#PostgresqlDatabase

私が試してみました

db = PostgresqlDatabase('database', user='user', password='password', host='host')

「heroku ログ」のログ スニペットを忘れた

2013-04-15T17:11:21.093479+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/peewee.py", line 1639, in connect
2013-04-15T17:11:21.093255+00:00 app[web.1]:   File "/app/myapp.py", line 5, in <module>
2013-04-15T17:11:21.093479+00:00 app[web.1]:     self.__local.conn = self._connect(self.database, **self.connect_kwargs)

更新 postgresql設定をに変更しようとしました

db = PostgresqlDatabase("dbname='template1' user='dbuser' host='localhost' password='dbpass'")

今私は得ています

2013-04-16T19:11:02.345227+00:00 app[web.1]:     db.connect()
2013-04-16T19:11:02.345227+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/peewee.py", line 1639, in connect
2013-04-16T19:11:02.345227+00:00 app[web.1]:     self.__local.conn = self._connect(self.database, **self.connect_kwargs)
2013-04-16T19:11:02.345227+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/peewee.py", line 1810, in _connect
2013-04-16T19:11:02.345582+00:00 app[web.1]:     return psycopg2.connect(database=database, **kwargs)
2013-04-16T19:11:02.345582+00:00 app[web.1]:     conn = _connect(dsn, connection_factory=connection_factory, async=async)
2013-04-16T19:11:02.345582+00:00 app[web.1]:   File "/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect
2013-04-16T19:11:02.345582+00:00 app[web.1]: psycopg2.OperationalError: could not connect to server: No such file or directory
2013-04-16T19:11:02.345582+00:00 app[web.1]:    Is the server running locally and accepting
2013-04-16T19:11:02.345582+00:00 app[web.1]:    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
4

2 に答える 2

1

ここで答えを見つけましたhttp://initd.org/psycopg/docs/module.html、数時間のグーグルとテストの後、接続する正しい方法は

db = PostgresqlDatabase(
    database='',
    user='',
    password='',
    host='',
    port='5432'
  )

これにより、peewee は Heroku 上の postgresql に接続できます

于 2013-04-16T19:37:39.993 に答える
-1

インタープリターの起動時にデータベースの構成がわからない場合は、初期化を「延期」して、実行時にデータベース接続パラメーターを設定できます。

http://peewee.readthedocs.org/en/latest/peewee/cookbook.html#deferring-initialization

于 2013-04-20T17:12:36.830 に答える