





















在将MySQL迁移到PostgreSQL的过程中,遇到了一些问题,下面是一些简单的解决方案。
bin\initdb -E UTF-8 -A md5 -U postgres -W -D data -- 如果只使用 bin\pg_ctl -D data init 则不会设置postgres的密码bin\pg_ctl -D data -l postgresql.log start -- 启动后当前控制台不会退出,需要手动关闭(使用关闭脚本)bin\pg_ctl -D data stop为了允许本机以外的IP访问,需要修改监控模式。具体步骤如下:
data\postgresql.conf 文件,将 listen_addresses 设置为 '*'。data\pg_hba.conf 文件。在该文件中添加以下内容:host all all 192.168.1.0/24 md5192.168.1.0/24 是允许访问的IP地址范围,md5 表示使用密码进行验证。以下是使用 pqsql 时遇到的一些问题:
数据库名需要小写(虽然大写也能用),否则 HeidiSQL 工具无法使用。
pqsql 自带 pgAdmin 4 工具,可以用来管理数据库
ServiceStack 的 ORM,会自动把字段名和表名在执行时转为小写,所以在注册数据库连接时,对名字的处理策略,缓存默认的。
···
var instance = PostgreSqlDialect.Instance;
instance.NamingStrategy = new OrmLiteNamingStrategyBase();
factory.RegisterConnection(databaseName, connStr, instance);
···
ExecuteReader.Parse 会因为某些字段有特殊的序列化规则,而无法进行序列化
解决办法,使用mysql分页脚本
select * from {typeof(T).Name} limit batchSize offset skip -- 不好用,超过100w条记录后,会导致查询超时
SELECT * FROM {typeof(T).Name} where id > {skip} and id <={skip + batchSize} -- 刚好默认id是自增的,可以使用这个脚本
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。