文档章节

liquibase 通过pgoneproxy来管理数据库版本

harris2016
 harris2016
发布于 2016/06/20 16:45
字数 437
阅读 129
收藏 1

  最近有客户反应liquibase通过pgoneproxy来管理数据库版本时,发现不能建立数据库表。这让我有点难理解,于是我直接下载了一个liquibase来测试,发现是pgoneproxy的权限管理的问题。现在说说测试的过程。

   先从http://www.liquibase.org/网站下载对应的liquibase,加压后,在目录下有如下文件:

liquibase.jar
README.txt
liquibase.spec
liquibase.bat
liquibase
LICENSE.txt
sdk
lib

为了创建数据库表,先增加创建表的配置文件,配置文件的内容如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
    <changeSet id="3" author="db_user">
        <createTable tableName="bigaaa">
            <column name="id" type="int" autoIncrement="true">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="firstname" type="varchar(50)"/>
            <column name="lastname" type="varchar(50)">
                <constraints nullable="false"/>
            </column>
            <column name="state" type="char(2)"/>
        </createTable>
    </changeSet>
</databaseChangeLog>

  上面配置文件中,要求创建bigaaa表。在使用下面的命令来运行:

./liquibase --driver=org.postgresql.Driver --changeLogFile=db.changelog.xml --url=jdbc:postgresql://172.30.12.10:2000/pgbench --username=db_user --password=1234 --logLevel=debug --logFile=log.txt update

测试发现报错了:

Unexpected error running Liquibase: ERROR: Access denied due to security policy, DDL disabled or DML restricted! [Failed SQL: CREATE TABLE public.databasechangeloglock (ID INT NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED TIMESTAMP WITHOUT TIME ZONE, LOCKEDBY VARCHAR(255), CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))]

看见错误后,知道是pgoneproxy的安全策略,导致创建表失败的。

在pgoneproxy中有--proxy-group-security=<servergroup:level>,--proxy-security-level=<level> --proxy-table-security=<table:level> 。其中后面两个安全策略都是默认情况下是没有设置的。而proxy_group_security默认情况下是设置为1的。不支持DDL。故需要在配置文件中增加--proxy-group-security=data0:0的配置。其中data0为组名称。

© 著作权归作者所有

共有 人打赏支持
harris2016
粉丝 10
博文 53
码字总数 30227
作品 0
杭州
程序员
私信 提问
Docker 实战案例解析,实现自动化数据库迁移

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五晚6点10分 与您不见不散! 在 Phorest Salon Software 公司,我们是在 AWS 上运行我们的平台。该平台由 VPC 内的许多 AWS 资源...

docker公司
2018/08/24
0
0
liquibase一个警告信息

liquibase集成到spring-boot中,启动的时候报很多警告信息,如何去掉? 解决警告,而不是去掉log的警告 2015-12-26 11:01:36 WARN [liquibase]:101 - Current XML parsers seems to not supp...

waterWang
2015/12/26
241
1
LibrePlan 1.2.4 发布,项目计划和管理

LibrePlan 1.2.4 发布,该版本修复了 1.2.3 中的所有发现的 bug,增加了捷克语的支持,同时这也是首个支持 MySQL 数据库的版本,这有赖于升级到 Liquibase 2.0.5 . LibrePlan 是一个基于 We...

oschina
2012/05/24
701
0
项目管理注意事项(写给做架构的自己)

1.统一使用数据库管理工具,推荐使用liquibase,一定要保留数据模型使用powerdesign. 2.项目整体的横向扩展,考虑后期的一些添加字段,逻辑改动。 3.数据的可追溯性,删除数据考虑数据的逻辑删...

梧桐宇宇
2018/04/13
0
0
LiquiBase注释怎么写

在LiquiBase的xml中怎么给table写注释,或者字段写注释?

waterWang
2015/12/25
258
1

没有更多内容

加载失败,请刷新页面

加载更多

test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
1
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0
大数据教程(11.5)仓库工具hive的实现机制

上一篇文章介绍了hadoop联邦集群的搭建过程。至此,hadoop的整个知识系统就差不多结束了。本篇博客开始,博主将分享数据仓库hive工具的原理以及使用。 一、Hive基本概念 (1)什么是Hive Hive...

em_aaron
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部