代码之家  ›  专栏  ›  技术社区  ›  chotchki

如何删除Postgres上的所有数据库?

  •  21
  • chotchki  · 技术社区  · 16 年前

    我每天从Postgres开发框中提取以下内容: pg_dumpall-h 127.0.0.1-u用户-w_gzip blah.gz

    由于9.0现在是一个版本候选,我希望每天将这个每日备份恢复到Postgres9.0rc1框中进行测试,但是我不确定如何反复编写它。有我可以用核武器查到的目录吗?

    3 回复  |  直到 16 年前
        1
  •  17
  •   halfdan    16 年前

    您可以执行“删除集群”和“创建集群”,这将自动删除所有数据库。清除$pgdata目录中的所有数据,然后使用以下方法重新初始化群集:

    initdb -D /usr/local/pgsql/data
    
        2
  •  14
  •   Fernando Almeida    13 年前

    您可以使用:

    $ pg_dropcluster 9.2 main
    $ pg_createcluster 9.2 main
    $ pg_ctlcluster 9.2 main start
    $ pg_restore -f your_dump_file
    

    在哪里? 9.2 = cluster version 和 main = cluster name

        3
  •  0
  •   tobias47n9e    9 年前

    将数据库数据移到其他地方可以实现与删除相同的效果,并且您可以轻松地将其移回,以防您改变主意(但无论如何一定要小心并备份您的数据)。

    1)在某处创建一个目录(例如 /home/USERNAME/BACKUPDIR )

    2)作为超级用户,进入PostgreSQL数据目录(Fedora,例如 /var/lib/pgsql/ )

    3)移动 data 到备份文件夹: mv data /home/USERNAME/BACKUPDIR

    4)然后使用例如 sudo postgresql-setup --initdb --unit postgresql