3

我正在研究这个 Heroku教程,我有一个关于autovacuum过程的问题。仍然没有表或数据,并且 autovacuum 启动器现在挂了半个多小时。下面是cmd窗户。

我在这里发现了一个类似的问题,但找不到答案。有谁知道发生了什么?

总结:在最后一行之后LOG: autovacuum launcher started,光标在最后一行下闪烁,但半小时以上没有发生任何事情。

C:\Users\a>initdb pg
The files belonging to this database system will be owned by user "a".
This user must also own the server process.

The database cluster will be initialized with locale "English_United States.1252
".
The default database encoding has accordingly been set to "WIN1252".
The default text search configuration will be set to "english".

Data page checksums are disabled.

initdb: directory "pg" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "pg" or run initdb
with an argument other than "pg".

C:\Users\a>postgres -D pg &
LOG:  database system was interrupted; last known up at 2013-10-05 13:46:39 EDT
LOG:  database system was not properly shut down; automatic recovery in progress

LOG:  record with zero length at 0/17704F8
LOG:  redo is not required
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started

编辑

正如bma评论中所建议的,我删除了pg目录和项目目录,然后我再次执行了相同的步骤,得到了相同的结果:LOG: autovacuum launcher started它挂起。我怎么了?


编辑

我打开了一个新的命令窗口并在那里启动了 repl 并且我能够执行

C:\Users\a\CLOJURE\shouter>lein repl

user=> (require '[clojure.java.jdbc :as sql])
nil

但是下一个命令给出了以下错误:

user=> (sql/with-connection (System/getenv "DATABASE_URL")
  #_=>          (sql/create-table :testing [:data :text]))


user=> IllegalArgumentException db-spec null is missing a required parameter  cl
ojure.java.jdbc/get-connection (jdbc.clj:192)

我怎样才能解决这个问题?


编辑

事实证明,'export' 是针对 unix 的,而在 Windows 中我需要使用 'set'。请参阅此相关问题

4

1 回答 1

4

发生的事情是您直接使用 pg 目录启动 postgres,并查看日志输出。最好将其安装为 Windows 上的服务,并使用默认数据目录。这是普通安装程序所做的。

但是,您当前的方法将只运行数据库,直到您关闭终端窗口,此时它将死亡(因此开始恢复)。您没有挂起的进程。那只是日志输出。

于 2013-11-24T05:02:37.233 回答