我和我的团队目前正在进行维护阶段,我一直在忙着升级所有东西。上周,我将团队从PostgreSQL 9.1移至9.3,将PostGIS 1.5移至2.1,这一切都顺利进行。昨天,Rails团队提交了一份Rails 4升级拉取请求,我们的CI迅速拒绝了。任何建议都将不胜感激。
尝试创建新的测试数据库时,收到以下Rails错误:
PG::RaiseException: ERROR: PostGIS is already installed in schema 'public', uninstall it first : CREATE EXTENSION postgis SCHEMA public
一些规格:
我的PostgreSQL / PostGIS安装步骤:
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main" >> /etc/apt/sources.list'
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
apt-get update -y
apt-get install postgresql-9.3-postgis-2.1
sudo -u postgres psql -c "CREATE USER xxadmin WITH PASSWORD 'xxpass';"
sudo -u postgres psql -c "ALTER USER xxadmin WITH SUPERUSER;"
sudo -u postgres psql -c "create database template_postgis with template = template1;"
sudo -u postgres psql -c "UPDATE pg_database SET datistemplate = TRUE where datname = 'template_postgis';"
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.3/extension/postgis--2.1.2.sql
sudo -u postgres psql -d template_postgis -c "GRANT ALL ON geometry_columns TO xxadmin;"
sudo -u postgres psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO xxadmin;"
sudo -u postgres psql -d template_postgis -c "VACUUM FREEZE;"
sudo -u postgres psql -c "ALTER DATABASE template_postgis OWNER TO xxadmin;"
sudo -u postgres psql -d template_postgis -c "ALTER VIEW geography_columns OWNER to xxadmin;"
sudo -u postgres psql -d template_postgis -c "ALTER TABLE geometry_columns OWNER to xxadmin;"
sudo -u postgres psql -d template_postgis -c "ALTER TABLE spatial_ref_sys OWNER to xxadmin;"
答案 0 :(得分:1)
目前有一些不同的方法可以使用PostGIS在空间上启用PostgreSQL数据库:
CREATE EXTENSION postgis;
。 最简单,最推荐。 template_postgis
)数据库。这对于设置具有类似功能的多个数据库非常有用。有时template_postgis
已预先安装,有时您需要创建它。