• 请不要在回答技术问题时复制粘贴 AI 生成的内容
firhome
V2EX  ›  程序员

在后端开发中创建数据库是怎么创建的呢?

  •  
  •   firhome · May 10, 2022 · 4470 views
    This topic created in 1644 days ago, the information mentioned may be changed or developed.
    大家好,小弟是前端,请教个问题。

    我用 node 开发了个小项目 想打包给别人用。

    但是对方是小白。我不可能让他去 跑 sql 创建数据库

    就想问问大家一个正常可对外的项目 数据库创建是怎么做的呢(怎么友好创建呢)?
    23 replies  •  2022-05-11 17:18:26 +08:00
    Jooooooooo
    Jooooooooo
    May 10, 2022
    1
    基建完善就去做好的后台创建, 没有的话你只能手动连数据库创建了呗.
    renmu
    renmu
    May 10, 2022 via Android
    2
    sqlite 欢迎你
    eason1874
    eason1874
    May 10, 2022
    3
    用文件数据库 SQLite ,项目内置一份创建 SQL 脚本,代码运行时获取数据库信息没有就通过脚本创建
    sflypig
    sflypig
    May 10, 2022
    4
    对外的项目这种 db init (包括建库、创建用户、建立索引等)的工作一般都是交给运维,运维给到开发就是一些个 r w 权限的账号可以去库里写数据。大部分运维其实也就是写脚本做的 db init ,所以你可以自己写 shell 脚本
    ion1ze
    ion1ze
    May 10, 2022
    5
    我正在用的,很适合小的数据量不多的 node 项目: https://github.com/louischatriot/nedb/
    v2eb
    v2eb
    May 10, 2022 via Android
    6
    项目启动执行下查询语句,没有就建表,有就跳过🐒
    sheeta
    sheeta
    May 10, 2022
    7
    学一下 wordpress ,哈哈,傻瓜式操作
    paradoxs
    paradoxs
    May 10, 2022
    8
    没看懂这是啥问题。 你给别人打包项目的时候,不打包数据库?

    不过其实也行啊,数据库也是可以用代码动态创建的。

    不过我还是建议你把数据库建好,给他实施部署的时候给他,把数据库一起打包进去啊。
    XCFOX
    XCFOX
    May 10, 2022
    9
    nodejs 的 ORM 都是能在项目启动的时候自动建表的。
    比如 TypeORM 把 synchronize 置为 true 。
    这种方法是最友好的,但是不太安全。正经生产环境绝不会开 ORM 自动更新表结构。

    就我个人的经验来看,nodejs 后端一般是先在本地或者测试服用 ORM 的自动建表功能建完了之后,用 DataGrip 或者手动 dump 把表结构导出成 SQL ,人眼过一遍,再找新的环境跑一遍,再把 SQL 部署到线上。真正对线上生产环境改动的 SQL 都是经过反复测试的。

    具体到楼主这个小项目,我建议楼主要么开 ORM 自动更新,要么把运维的活也揽了。
    gogogo1203
    gogogo1203
    May 10, 2022
    10
    写一个单独的 admin 管理程序, 把 migrate, drop, seed 都写进去。 自己开发的时候用也十分舒服
    lower
    lower
    May 10, 2022
    11
    直接把全部应用程序、数据库都塞到 docker 镜像中,映射出需要的端口就行;
    只需要给对方提供一行启动命令
    documentzhangx66
    documentzhangx66
    May 10, 2022
    12
    既然对方是小白,那就应该让对方把物理服务器,或虚拟机的 IP 、账号、连接方式都发给你,由你去操作建立。
    kujio
    kujio
    May 11, 2022
    13
    sqllite 呀,数据不多,不频繁可以用 JSON 格式存文件。
    项目配置比较麻烦的话还是上 docker ,小项目就算了
    Rache1
    Rache1
    May 11, 2022
    14
    Laravel 中,「迁移」的概念就很不错
    agagega
    agagega
    May 11, 2022
    15
    要么传统 PHP 风格,运行时检测表,发现没有就提示用户创建;要么 Rails 风格,一堆迁移文件,数据库帐号密码设置好跑一个命令一次性设置好
    kaedeair
    kaedeair
    May 11, 2022
    16
    1.用 sqlite 直接复制个初始数据库给他
    2.用 docker-compose 初始化脚本扔到 /docker-entrypoint-initdb.d 里面,前后端打包成服务,用容器名解析 ip
    Huelse
    Huelse
    May 11, 2022
    17
    可以考虑 docker
    xooass
    xooass
    May 11, 2022
    18
    一堆 php 应用比如 discuz ,WordPress ,不都有一个安装界面让小白填一下数据库用户名和密码就自动安装了
    Joker123456789
    Joker123456789
    May 11, 2022
    19
    都有数据库了,还想着运行在别人的本地? 弄个服务器部署一下 不好吗?
    gen900
    gen900
    May 11, 2022
    20
    我把整个 node pkg 成一个 exe ,额外增加了 setup 参数。写了个使用说明,第一次运行要 server.exe setup. 以后就直接运行 server.exe 就可以了
    gen900
    gen900
    May 11, 2022
    21
    给客户的越傻瓜越好
    tuutoo
    tuutoo
    May 11, 2022
    22
    把整个项目都包在一个 Docker 里发布
    Linxing
    Linxing
    May 11, 2022
    23
    写 migrate 用代码去控制
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1245 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 17:24 · PVG 01:24 · LAX 09:24 · JFK 12:24
    ♥ Do have faith in what you're doing.