typescript - 在 mikroORM 中创建迁移时数据库不存在
问题描述
我试图 mikroORM 创建迁移,但似乎我无法创建表本身。我不知道我错过了什么,错误说数据库“crm”不存在。
请看下面的代码:
mikro-config.ts
import { MikroORM } from "@mikro-orm/core";
import { Post } from "./entities/Post";
import { __prod__ } from "./constants";
import path from "path";
export default {
migrations: {
path: path.join(__dirname, "./migrations"), // path to the folder with migrations
pattern: /^[\w-]+\d+\.[tj]s$/, // regex pattern for the migration files
},
entities: [Post],
dbName: "crm",
type: "postgresql",
user: "postgres",
debug: !__prod__,
} as Parameters<typeof MikroORM.init>[0];
索引.ts
import { MikroORM as MK } from "@mikro-orm/core";
import { __prod__ } from "./constants";
import { Post } from "./entities/Post";
import mikroOrmConfig from "./mikro-orm.config";
const main = async () => {
const orm = await MK.init(mikroOrmConfig);
const post = orm.em.create(Post, {
firstName: "Test",
lastName: "Test2",
dateOfBirth: "2012-01-01",
email: "xxy@gmail.com",
phone: "192803994",
address: "34th street local avenue, trade city",
});
await orm.em.persistAndFlush(post);
};
main().catch((err) => console.log(err));
console.log("test");
Post.ts
import { Entity, PrimaryKey, Property } from "@mikro-orm/core";
@Entity()
export class Post {
@PrimaryKey()
_id!: number;
@Property()
createdAt: Date = new Date();
@Property({ onUpdate: () => new Date() })
updatedAt: Date = new Date();
@Property()
firstName!: string;
@Property()
lastName!: string;
@Property()
dateOfBirth!: Date;
@Property()
email!: string;
@Property()
phone!: string;
@Property()
Address!: string;
}
npx mikro-orm 迁移:创建 --initial。
我已经删除了文件夹并再次尝试没有任何反应。
解决方案
您刚刚创建了迁移,现在您需要通过npx mikro-orm migration:up
.
npx mikro-orm migration:create # Create new migration with current schema diff
npx mikro-orm migration:up # Migrate up to the latest version
npx mikro-orm migration:down # Migrate one step down
npx mikro-orm migration:list # List all executed migrations
npx mikro-orm migration:pending # List all pending migrations
https://mikro-orm.io/docs/migrations/#using-via-cli
或者,您可以SchemaGenerator
直接使用而不是迁移:
npx mikro-orm schema:create --run # creates the schema, including the database if not exists
npx mikro-orm schema:update --run # updates the schema
npx mikro-orm schema:drop --run # drops the schema
推荐阅读
- c# - 具有 SQL Server 连接的实体框架 6 尝试使用 MySqlClient 并崩溃
- azure - Azure DevOps Repos TFVC 从一个组织转移到另一个具有完整历史记录
- python - 尝试使用 Beautiful Soup 访问 ['style'] 时出现 KeyError
- ruby-on-rails - 我关于生产的博客没有按照开发的方式工作
- python - Pyspark - 规范化数据框
- windows - 如何在安装程序中分发使用 Windows 运行时的 Windows 应用程序?
- python - 从 json 中抓取特定值
- c++ - Eclipse CDT 包含 C/C++ 标准库
- sql - 如何在 jsonb 对象数组上应用过滤器 - 聚合后?
- android - 使用 Retrofit 时响应是 url 编码的