美文网首页
TypeORM数据库实践(上)

TypeORM数据库实践(上)

作者: kzc爱吃梨 | 来源:发表于2022-03-02 17:24 被阅读0次

    启动数据库postgresql

    创建数据目录 (Windows Toolbox省)

    • 在项目目录里创建blog-data目录
    • .gitignore里添加/blog-data/

    启动 PostgreSQL

    • 一句命令启动pg:
    docker run -v "$PWD/blog-data":/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_USER=blog -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:12.2
    
    以下是 Windows 旧版 Docker 客户端(Toolbox)的命令(推荐 Windows 用户使用这一版客户端,很稳)
    docker run -v "blog-data":/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_USER=blog -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:12.2
    

    如果报错,可以看这篇教程

    • docker ps -a这句话可以查看容器运行状态
    • docker logs 容器id这句话可以查看启动日志

    验证 pg

    进入docker容器
    docker exec-it容器id bash

    进入pg命令行

    • psql -U blog -W
    • 我设置了不需要密码,所以直接回车即可
    如果你需要密码可在
    docker run选项里的 -e POSTGRES_HOST_AUTH_ME THOD=trust 替换成-e POSTGRES_PASSWORD=123456
    

    执行pg命令

    • \l用于list databases,目前有一个blog数据库
    • \c用于 connect to a database
    • \dt用于display tables,目前我们没有tables
    • \q用于退出

    创建数据库

    用SQL来创建数据库

    • 因为TypeORM 没有提供单纯创建数据库的API(差评)
    CREATE DATABASE blog_development ENCODING 'UTF8' LC_COLLATE 'en_US.utf8' LC_CTYPE 'en_US.utf8';
    
    • 我们需要创建三个数据库:开发、测试、生产
    • 对应英文:development、test、production
    • 最终结果得到三个数据库

    安装 TypeORM

    步骤

    • 打开官网,点击Getting Started
    • 找能运行的代码

    结果

    • git commit -m 'install pg'提交代码
    • 安装依赖:yarn add typeorm reflect-metadata @types/node pg
    • 然后修改tsconfig里面添加
    "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
    
    • 注意,这里要git commit -m 'add typeorm'一下
    • 然后 npx typeorm init --database postgres
    • 重要:然后把一些文件还原一下(WebStorm或命令行)
    git checkout HEAD -- tsconfig.json
    
    • 最后修改ormconfig.jsonsrc/index.ts

      ormconfig.json
    • 如果npx typeorm失败就改成./node_modules/.bin/typeorm

    连接数据库

    步骤

    • 选做:升级 Node.js到v14
    • 安装 @babel/cli
    yarn add @babel/cli
    
    • npx babel ./src --out-dir dist --extensions ".ts,.tsx"
    • 根据错误提示搜索答案
      yarn add --dev @babel/plugin-proposal-decorators
      去 Next.js官网查看.babelrc默认配置,复制,创建.babelrc,添加插件
    {
      "presets": [
        "next/babel"
      ],
      "plugins": [
        [
          "@babel/plugin-proposal-decorators",
          {
            "legacy": true
          }
        ]
      ]
    }
    
    • 重新运行刚刚失败的命令
    • 得到dist里面的JS,运行node dist/index.js根据错误提示再加上数小时的搜索,修改ormconfig
    • 重新运行 node dist/index.js
    • 成功看见connection对象即为成功
    工作流总结 image.png

    相关文章

      网友评论

          本文标题:TypeORM数据库实践(上)

          本文链接:https://www.haomeiwen.com/subject/ddferrtx.html