sql - 为什么 Diesel 在列指定长度时无法迁移 PostgresSQL 数据库?
问题描述
当我使用 生成迁移时diesel migration generate customers
,如果up.sql
迁移文件夹中的文件不包含用于列长度的括号:
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
name VARCHAR NOT NULL,
identity VARCHAR NOT NULL,
hometown VARCHAR NOT NULL,
age INT NOT NULL
)
当我运行时diesel migration run --database-url=postgres://<info>
,它成功迁移了数据库。
为什么会出现以下情况:
CREATE TABLE customers (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
identity VARCHAR(255) NOT NULL,
hometown VARCHAR(255) NOT NULL,
age INT(11) NOT NULL
)
引发错误:
Failed with: syntax error at or near "("
我的 SQL 并不令人惊讶,因此我直接使用 ORM,但我相信 SQL 查询都是完全有效的,我不知道去哪里调试。
解决方案
推荐阅读
- xml - XSLT:调用模板中的变量
- scala - Scala - 特征返回不同的对象
- c# - .NET 标准库 - 无法加载文件或程序集“System.Runtime.Caching”
- c# - 在布局中的两个局部视图之间切换
- java - javax.ws.rs.core.UriBuilder 构建遇到问题
- node.js - Mongoose - 引用另一个表中的字段
- asp.net - Wix 安装程序 CopyFile 移动文件不起作用
- angular - @ngx-translate/core 中的错误 - 错误 TS1086:无法在 Angular 8 的环境上下文中声明访问器
- c# - 在多线程环境(Azure Functions)中等待服务总线队列中特定消息的正确方法
- express - 未捕获的类型错误:at.a 未定义