此处将为大家介绍关于PostgresType的详细内容,此外,我们还将为您介绍关于'type_cast_required'在Postgresql中是未定义的消息、centos7下源码编译安装php支持
此处将为大家介绍关于Postgres Type的详细内容,此外,我们还将为您介绍关于'type_cast_required'在Postgresql中是未定义的消息、centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、Nestjsx/crud + typeorm + postgres - 仅在满足特定条件时过滤、Persist PostgreSQL Json datatype with Hibernate的有用信息。
本文目录一览:- Postgres Type
- 'type_cast_required'在Postgresql中是未定义的消息
- centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教
- Nestjsx/crud + typeorm + postgres - 仅在满足特定条件时过滤
- Persist PostgreSQL Json datatype with Hibernate
Postgres Type
学一门语言,动态调试很重要,很多逻辑梳理清楚了
'type_cast_required'在Postgresql中是未定义的消息
如何解决''type_cast_required''在Postgresql中是未定义的消息?
我在Postgresql中创建了一个数据库。我正在尝试使用pgadmin将新记录添加到表中,但是我得到一个消息:''type_cast_required''未定义。
屏幕截图:
我已经在网上查找了此消息的含义,但是我什么都没找到。
有什么想法吗?
解决方法
pgAdmin错误。从pgAdmin 4.22版本开始应该已经修复了该问题。有关更多详细信息,请参见此issue。您将需要一个Postgres社区帐户来查看问题。
centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教
1. 下载源码
$ mkdir /usr/downloads $ wget -c http://cn2.php.net/distributions/php-5.6.20.tar.gz $ tar -xvf php-5.6.20.tar.gz $ mv php-5.6.20 /usr/local/src $ cd !$ & cd php-5.6.20
2. 阅读安装指导
$ ls -also $ less README $ less INSTALL
3. 安装依赖包
$ yum install apr apr-util apr-devel apr-util-devel prce lynx
4. 安装httpd
$ wget -c http://apache.fayea.com//httpd/httpd-2.4.20.tar.gz $ tar -xvf httpd-2.4.20.tar.gz $ cd httpd-2.4.20 $ ./configure \ --prefix=/usr/local/programs/apache2 \ --enable-rewrite \ --enable-so \ --enable-headers \ --enable-expires \ --with-mpm=worker \ --enable-modules=most \ --enable-deflate \ --enable-module=shared $ make $ make install $ cd /usr/local/programs/apache2 $ cp bin/apachectl /etc/init.d/httpd ## 复制启动脚本 $ /etc/init.d/httpd start ## 启动apache服务器,访问http://localhost/ $ egrep -v ''^[ ]*#|^$'' /usr/local/apache2/conf/httpd.conf | nl ## 查看apache服务器的配置 ## 将apache加入系统服务 vi /etc/rc.d/rc.local ``` /usr/local/programs/apache2/bin/apachectl start ``` $ cat /etc/rc.local
4. 安装postgresql
立即学习“PHP免费学习笔记(深入)”;
$ yum install readline-devel ## 安装readline依赖 $ cd /usr/downloads $ wget -c https://ftp.postgresql.org/pub/source/v9.5.0/postgresql-9.5.0.tar.bz2 $ tar -xvf postgresql-9.5.0.tar.bz2 $ cd postgresql-9.5.0 $ ./configure --prefix=/usr/local/programs/postgresql $ make $ su $ make install $ /sbin/ldconfig /usr/local/programs/postgresql/lib ## 刷新下共享动态库 $ cd /usr/local/programs/postgresql $ bin/psql --version ## 检查运行情况 ## 开始对postgresql的配置 $ vi /etc/profile.d/postgresql.sh ## 增加环境变量,不推荐直接在/etc/profile中添加,系统更新升级时会需要merge ``` PATH=/usr/local/programs/postgresql:$PATH export PATH ``` $ source /etc/profile ## 更新环境变量 ## 增加用户和其他文件夹 $ adduser postgres $ passwd postgres $ mkdir /usr/local/programs/postgresql/logs $ mkdir /usr/local/programs/postgresql/data $ chown postgres /usr/local/programs/postgresql/data $ su - postgres ## 初始化数据库 $ ./bin/initdb -D ./data $ ./bin/createdb test $ ./bin/psql test ## 已有数据库,可导入data文件夹后尝试root访问,假如带密码,可能需要进一步研究下 $ ./bin/postgres -D ./data >./logs/start-log-1.log 2>&1 & $ ./bin/psql --list ##列出数据库 ## ok,安装完成 ## 自定义设置,权限控制等,可以跳过,等熟悉使用后再做 ## 编辑数据库配置及权限文件: $ vi /usr/local/programs/postgresql/data/postgresql.conf ## 数据库配置文件 $ chown postgres postgresql.conf $ chmod 644 postgresql.conf $ vi /usr/local/programs/postgresql/data/pg_hba.conf ## 权限文件 $ vi /usr/local/programs/postgresql/data/pg_ident.conf ## 设置开机自启动: $ vi /etc/rc.d/rc.local ## 添加如下内容 ``` /usr/local/programs/postgresql/bin/postgresql start ```
5. 安装php
## 源码已经在第一步中下载,现在开始安装: $ yum install libxml2 libxml2-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel $ ./configure \ --prefix=/usr/local/programs/php \ --with-apxs2=/usr/local/programs/apache2/bin/apxs \ --with-zlib \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-zlib-dir \ --enable-mbstring \ --with-pgsql=/usr/local/programs/postgresql \ --with-pdo-pgsql=/usr/local/programs/postgresql $ make $ make test > Bug #42718 (unsafe_raw filter not applied when configured as default filter) [ext/filter/tests/bug42718.phpt] XFAIL REASON: FILTER_UNSAFE_RAW not applied when configured as default filter, even with flags > Bug #67296 (filter_input doesn''t validate variables) [ext/filter/tests/bug49184.phpt] XFAIL REASON: See Bug #49184 > Bug #53640 (XBM images require width to be multiple of 8) [ext/gd/tests/bug53640.phpt] XFAIL REASON: Padding is not implemented yet > zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt] XFAIL REASON: https://bugs.php.net/bug.php?id=66582 > zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt] XFAIL REASON: https://bugs.php.net/bug.php?id=66582 >Bug #70470 (Built-in server truncates headers spanning over TCP packets) [sapi/cli/tests/bug70470.phpt] XFAIL REASON: bug is not fixed yet ## 查阅官方的bug,发现: > id=66582: status : Closed. Fixed in master (PHP7) > id=42718: status : Assigned > id=42718: reference to id=49184, unsolved for many years ## 那就不关心了,直接装吧 $ make install > You may want to add: /usr/local/programs/php/lib/php to your php.ini include_path ## 那就按它说的设置吧 $ cp php.ini-development /usr/local/programs/php/lib/php.ini ``` include_path = ".;/usr/local/programs/php/lib/php" ## 然后,编辑httpd的设置,确保其能正确解析php文件 ``` ... LoadModule php5_module modules/libphp5.so ... AddType application/x-httpd-php .php AddType application/x-httpd-php-source .php5 ... <ifmodule dir_module> DirectoryIndex index.html index.php </ifmodule> ``` ## 重启httpd,测试 $ cd /usr/local/programs/apache2 $ bin/httpd -h $ bin/httpd -k stop $ bin/httpd -f conf/httpd.conf ## 默认设置的www页面在./htdocs/下,那就先去里面建一个测试页面吧 $ vi htdocs/index.php ``` <?php phpinfo(); ?> ``` $ curl http://localhost/index.php |grep postgresql #ok
后续应该做的事
* 1. 启动时,不需要要手动指定配置文件
* 2. php初始化www目录设置
* 3. php 用户、权限管理等
以上就介绍了centos 7下源码编译安装php支持PostgreSQL,包括了postgresql,centos 7方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
Nestjsx/crud + typeorm + postgres - 仅在满足特定条件时过滤
如何解决Nestjsx/crud + typeorm + postgres - 仅在满足特定条件时过滤?
我在我的用户控制器上使用这些过滤器,它们工作得很好。但是现在系统只在用户不是超级用户时才需要应用其中一些过滤器。我如何使用过滤器属性来检查用户是否是 su?实际代码如下:
@Crud({
model: {
type: User,},routes: {
createOneBase: {
returnShallow: true
},updateOneBase: {
returnShallow: true,replaceOneBase: {
returnShallow: true,exclude: [''deleteOneBase'',''updateOneBase'',''createManyBase''],params: {
id: {
field: ''id'',type: ''number'',primary: true,query: {
join: {
createdBy: { eager: true,exclude: [''password''] },updatedBy: { eager: true,members: { eager: true,alias: ''groups'' },contacts: {eager: true,alias: ''contacts''},''members.group'': { eager: true },userCompanies: { eager: true },''userCompanies.companyId'': { eager: true }
},filter: {
exclude: {
$eq: false,''contacts.exclude'': {
$eq: false,''userCompanies.exclude'': {
$eq: false,}
},sort: [
{
field: ''id'',order: ''ASC'',}
]
}
})
无论用户类型如何,都会应用的唯一一种是排除一种。
解决方法
我自己使用 ParsedRequest 的覆盖方法解决了。
@Override(''getManyBase'')
async getMany(@ParsedRequest() req: CrudRequest,@UserReq() user: User) {
if(!user.su) {
req.parsed.filter.push({
field: ''contacts.exclude'',operator: ''$eq'',value: false
},{
field: ''userCompanies.exclude'',value: false
})
}
return await this.service.getMany(req);
}
Persist PostgreSQL Json datatype with Hibernate
在PG数据库中要额外创建以下Function和Cast(必须创建):
CREATE OR REPLACE FUNCTION json_intext(text) RETURNS json AS $$ SELECT json_in($1::cstring); $$ LANGUAGE sql IMMUTABLE; CREATE CAST (varchar AS json) WITH FUNCTION json_intext(text) AS IMPLICIT;
在数据库中表的sql定义
drop table if exists tabx; create table tabx ( id bigint PRIMARY KEY NOT NULL,device_id bigint references hdata_device_info(id),pcie_info json,sample_time timestamp );
在entity中的类型定义(对应字段使用String类型)
@Entity @Table(name="hdata_pcie_info") @NamedQuery(name="HdataPcieInfo.findAll",query="SELECT h FROM HdataPcieInfo h") public class Tabx implements Serializable { private static final long serialVersionUID = 1L; @TableGenerator(name="tabx_id_generator",table="id_generator",pkColumnName="pk_name",pkColumnValue="pcie_info_id",valueColumnName="pk_value",allocationSize=1) @Id @GeneratedValue(strategy=GenerationType.TABLE,generator="tabx_id_generator") private Long id; @Column(name="pcie_info") private String pcieInfo; @Column(name="sample_time") private Timestamp sampleTime; //bi-directional many-to-one association to HdataDeviceInfo @ManyToOne @JoinColumn(name="device_id") private HdataDeviceInfo hdataDeviceInfo; //get or set method
保存json数据:
logger.debug(jsonArray.toString()); entity.setPcieInfo(jsonArray.toString()); //String json = "{\"username\":\"john\",\"posts\":121,\"emailaddress\":\"john@Nowhere.com\"}"; //entity.setPcieInfo(json)
关于Postgres Type的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于'type_cast_required'在Postgresql中是未定义的消息、centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、Nestjsx/crud + typeorm + postgres - 仅在满足特定条件时过滤、Persist PostgreSQL Json datatype with Hibernate等相关内容,可以在本站寻找。
本文标签: