Category: Development

Git 更新合并fork的项目代码

添加fork仓库

git remote add upstream https://github.com/fork.git

检查远程分支

fetch源分支到本地

git fetch upstream

合并代码

git merge upstream/master

合并时可能会有代码冲突,这需要手动处理

提交合并后的代码

git push origin master

MySQL 常用命令

-- 查看数据库引擎的运行时信息
show engine innodb status\G;

-- 显示正在运行的线程
show processlist;

-- 杀死进程
kill id

-- 锁表处理
show status like ‘%lock%’
show OPEN TABLES where In_use > 0; 

-- 查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

-- 查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 

-- 查看服务器状态
show status like ‘%lock%’;

-- 显示一个用户的权限
show grants for user_name; 

-- 显示一些系统特定资源的信息
show status; 

-- 显示系统变量的名称和值
show variables; 

-- 显示BDB存储引擎的日志
show logs; 

-- 显示最后一个执行的语句所产生的错误、警告和通知
show warnings; 

-- 只显示最后一个执行语句所产生的错误
show errors; 

-- 查看MySQL服务器运行的各种状态值
show global status;

-- 显示连接数
show variables like 'max_connections'; 
show global status like 'max_used_connections'; 

Mac psycopg2 安装错误记录

今天在电脑上安装Odoo的python的依赖包时,遇到了psycopg2无法正常安装的问题。提示 ld: library not found for -lssl 找不到,导致安装失败。

lssl是属于openssl的lib文件,查看系统发现openssl是正确安装的。

brew openssl info

于是查看系统的env环境发现openssl的CPPFLAGS环境变量是没有设置的,于是将openssl的环境变量均设置上。

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"

再次尝试安装

pip --no-cache install psycopg2

发现能正常安装了,综上判断,安装不了应该是由于没有找到openssl所对应的lib库引起的。

Centos/Mac 命令自动补全

常常使用tab来补全需要的命令参数,但在最小化安装系统的时候默认不安装,由于软件在epel库中,安装时先安装epel-release,再安装bash-completion,且需要重新建立bash环境。

yum -y install epel-release
yum -y install bash-completion
brew install bash-completion

# 写入设置,具体的可以通过 brew info bash-completion 查看
vim ~/.zshrc
fpath=(/usr/local/share/zsh-completions $fpath)
plugins=(... zsh-completions)
autoload -U compinit && compinit

Jackson反序列化 Y/N

Json表示布尔的标准形式是true和false,但在项目中也有使用0/1,或者Y/N来表示的。这时候就需要我们将其转换为布尔类型。

package utils;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;

import java.io.IOException;

public class JsonCustomDeserializer extends JsonDeserializer<Boolean> {

	@Override
	public Boolean deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {

		JsonToken currentToken = jsonParser.getCurrentToken();

		if (currentToken.equals(JsonToken.VALUE_STRING)) {
			String text = jsonParser.getText();

			if ("X".equals(text)) {
				return Boolean.TRUE;
			} else if ("".equals(text)) {
				return Boolean.FALSE;
			}

			throw deserializationContext.weirdStringException(text, Boolean.class, "Only X or null values supported.");
		} else if (currentToken.equals(JsonToken.VALUE_NULL)) {
			return Boolean.FALSE;
		}

		return deserializationContext.reportBadDefinition(Boolean.class, "Can't parse boolean value: " + jsonParser.getText());
	}

}

使用

@TableField("LVORM")
@JsonProperty(value = "LVORM", access = JsonProperty.Access.WRITE_ONLY)
@JsonDeserialize(using = JsonCustomDeserializer.class)
private boolean lvorm;

Install PostgreSql with brew

安装brew的文章请查看:https://jalena.bcsytv.com/archives/2298

版本选择

可以在 https://formulae.brew.sh/formula/postgresql#default 这里找到你需要的PostgreSql版本。本文章使用的是postgresql@10

安装及锁定版本

# 搜索需要的程序
brew search postgresql

# 安装程序
brew install postgresql@10 

# 锁定程序版本
brew pin postgresql@10

初始化设置

# 写入环境变量
echo 'export PATH="/usr/local/opt/postgresql@10/bin:$PATH"' >> ~/.bash_profile

# 让变量立即生效
source ~/.bash_profile

# 如果不想每次输入data目录路径,可以设置数据文件环境变量
echo 'export PGDATA="/usr/local/var/postgresql@10"' >> ~/.bash_profile

启动、使用

# 启动数据库
brew services start postgresql@10

# 停止数据库
brew services stop postgresql@10

# 重启数据库
brew services restart postgresql@10

# 查看当前运行的所有服务
brew services run --all

# 进入数据库
# 这种方式默认初始化的数据库账号为当前系统用户
# 默认的数据库为 postgres
psql postgres

设置快捷命令

vim ~/.bash_profile
alias pgst='brew services start postgresql@10'
alias pgsp='brew services stop postgresql@10'
alias pgrs='brew services restart postgresql@10'
source ~/.bash_profile

现在就可以在任何地方使用pgst来启动数据库了。

Archives