基于docker的postgres 部署见这篇 https://www.cnblogs.com/xuanmanstein/p/7742647.html

连接数据库

import psycopg2class MyTestCase(unittest.TestCase):

    @classmethod
def setUpClass(cls):
db = '172.19.0.12'
# root用户 先连到默认数据库
connection_parameters = {
'host': db,
'database': 'postgres',
'user': 'postgres',
'password': 'example'
}
cls.conn = psycopg2.connect(**connection_parameters)
cls.conn.autocommit = True

创建ROLE或USER

必须用连接其他数据库的其他用户,才能删除和创建别的用户,典型如默认用户postgres 连接到postgres,然后删除创建别的用户,和别的数据库

    def test_create_user(self):
#创建用户
name = 'stavka'
pwd = ''
SQL = f'''
DROP ROLE IF EXISTS {name};
CREATE ROLE {name};
ALTER ROLE {name} ENCRYPTED PASSWORD '{pwd}';
ALTER ROLE {name} LOGIN CREATEDB CREATEROLE;
'''
# 执行
with self.conn.cursor() as cursor:
cursor.execute(SQL)

先删除(如果存在),再创建,再设置密码,最后设置各种权限

创建/删除数据库

为了使用postgis,在docker镜像建立的时候,已经1个template_postgis数据库,安装了各种extention,

然后就可以用它作为模板,来创建新数据库


self.conn.autocommit = True
self.conn.set_isolation_level(0)

with self.conn.cursor() as cur:
cur.execute(f'''DROP DATABASE IF EXISTS {db_name};''')
cur.execute(f'''CREATE DATABASE {db_name} OWNER {role_name} TEMPLATE template_postgis;''')

如果pgAdmin4里已经连接了 template 和删除的目标数据库中任意1个,则会报错

psycopg2.errors.ObjectInUse: database "XXX" is being accessed by other users
DETAIL: There is 1 other session using the database.

psycopg2+postgis+pgAdmin4的更多相关文章

  1. 将PostGIS转化为GeoJSON

    #!/usr/bin/env python # -*- coding: utf-8 -*- import psycopg2 import json from geojson import loads, ...

  2. PostgreSQL(PostGIS)安装和入门的若干问题

    1. 装完PostgreSQL后记得打开pgAdmin4启动一下服务器和启动一下数据库,否则PostGIS装不上. 2. pgAdmin4是网页,而3是客户端,当然都可以在File - Prefere ...

  3. 用docker-compose部署postgres+ postgis

    20190411更新.之前写的太啰嗦,也不删了,重新来.小坑还是有的 psql 命令行客户端 因为postgres用docker镜像安装,所以host不需要安装pg,只需要安装客户端 sudo apt ...

  4. Geoserver+Postgresql+PostGIS 进行数据发布

    1.postgressql+postgis安装 由于我已经安装了,因此没法进行截图,给出下载地址 下载地址:https://www.postgresql.org/ 记得一定要下载edu的版本 因为这个 ...

  5. 学习笔记之PostgreSQL / pgAdmin / Psycopg / PostGIS

    PostgreSQL: The world's most advanced open source database https://www.postgresql.org/ POSTGRESQL: T ...

  6. GIS on CentOS 7 之 PostgreSQL & PostGIS

    PostgreSQL & PostGIS 安装postgresql 配置好yum源之后,使用yum info postgresql可发现 postgresql的版本为9.2.23,若想安装最新 ...

  7. Python访问PostGIS(建表、空间索引、分区表)

    #encoding: utf-8 __author__ = 'Administrator' import psycopg2 import ppygis import datetime import s ...

  8. (数据科学学习手札93)利用geopandas与PostGIS进行交互

    本文完整代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 PostGIS作为postgresql针对 ...

  9. PostGIS(解压版)安装

    1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/windows/ post ...

随机推荐

  1. 多个if、elif和else的搭配使用

    if-if-if-搭配成的语句块,会一个个去匹配是否满足if里面的语句; if与elif的搭配成的语句块,当匹配到if或者elif语句判断为True的时候,那么不会执行下面elif以及else里面的语 ...

  2. 68.jq---tab选项实现网页定点切换

    {volist name="list" id="vo"}<div class="nav_div" style="positi ...

  3. PHP----------线程安全和非线程安全的介绍

    1.Linux下的PHP,没有线程安全版和非线程安全版之分.从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有Thread Sa ...

  4. react使用create-react-app创建的项目部署

    一.在所有的项目代码编写完成后,react项目直接部署是无法正常访问的 1.问题一 网页无法正常的浏览器刷新,刷新会报404错,路由找不到页面 2.问题二 路由跳转后,浏览器后退按钮点击后,页面不刷新 ...

  5. Angular4 构建,部署,多环境

  6. jenkins+git+maven

    这个有参考:https://blog.csdn.net/xlgen157387/article/details/50353317 主要针对一些错误记录一下 1.如果要不想用系统的jdk等,可以在全局工 ...

  7. python函数部分----函数初识

    0.来源http://www.cnblogs.com/jin-xin/articles/8241942.html 1.return 返回0个返回值,返回一个返回值.返回多个返回值 None.如果一个变 ...

  8. 在java中实现数据导入excel表格中

    1.首先前端代码如下: 一个导出按钮:<input id="export" class="btn btn-primary" type="butt ...

  9. tomcat启动命令行中文乱码

    1.找到${CATALINA_HOME}/conf/logging.properties 2.添加语句:java.util.logging.ConsoleHandler.encoding = GBK ...

  10. 1.2:Properties

    文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 上一节我们了解了一个Shader的基本结构,这一节,我们从 Propert ...