我在一个带有MariaDB数据库的临时服务器(WindowsServer2012)上运行了一个django应用程序。当我推到暂存分支时,我有一个git钩子在本地运行mysqldump。在服务器上,我有一个批处理脚本从这个分支中提取,迁移django,导入转储,最后重新启动站点。看起来有点像这样:
@echo off
D:
cd
cmd /k "git stuff && python manage.py migrate && mysql -uroot db < D:/repo/db.sql && stop/start site... && exit
PAUSE遗憾的是,当脚本到达转储导入时,它会发出一个错误,说它不知道排序规则(ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_0900_ai_ci' )。在googling之后,我发现我只需在编辑器中打开sql,并将所有'utf8mb4_0900_ai_ci‘替换为'utf8mb4_general_ci’。当然,对于这一次,这并不是完全有用的,因为这个转储是自动化过程的一部分。
有人知道自动化排序规则替换的简单解决方案吗?
发布于 2021-07-21 22:12:17
{与@nbk建议(在对这个问题的评论中)使用:sed -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' -i myfilename.sql }
我认为在Windows中运行Unix命令有两个主要选项:
在这两种情况下,您都可以得到收藏夹,例如:sed、gawk等等。
https://dba.stackexchange.com/questions/295954
复制相似问题