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

2022-05-10 18:56:33 +08:00
 firhome
大家好,小弟是前端,请教个问题。

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

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

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

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

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

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

具体到楼主这个小项目,我建议楼主要么开 ORM 自动更新,要么把运维的活也揽了。
gogogo1203
2022-05-10 21:15:55 +08:00
写一个单独的 admin 管理程序, 把 migrate, drop, seed 都写进去。 自己开发的时候用也十分舒服
lower
2022-05-10 22:01:38 +08:00
直接把全部应用程序、数据库都塞到 docker 镜像中,映射出需要的端口就行;
只需要给对方提供一行启动命令
documentzhangx66
2022-05-10 23:01:44 +08:00
既然对方是小白,那就应该让对方把物理服务器,或虚拟机的 IP 、账号、连接方式都发给你,由你去操作建立。
kujio
2022-05-11 10:32:56 +08:00
sqllite 呀,数据不多,不频繁可以用 JSON 格式存文件。
项目配置比较麻烦的话还是上 docker ,小项目就算了
Rache1
2022-05-11 10:53:05 +08:00
Laravel 中,「迁移」的概念就很不错
agagega
2022-05-11 11:02:31 +08:00
要么传统 PHP 风格,运行时检测表,发现没有就提示用户创建;要么 Rails 风格,一堆迁移文件,数据库帐号密码设置好跑一个命令一次性设置好
kaedeair
2022-05-11 11:20:26 +08:00
1.用 sqlite 直接复制个初始数据库给他
2.用 docker-compose 初始化脚本扔到 /docker-entrypoint-initdb.d 里面,前后端打包成服务,用容器名解析 ip
Huelse
2022-05-11 13:17:37 +08:00
可以考虑 docker
xooass
2022-05-11 15:59:22 +08:00
一堆 php 应用比如 discuz ,WordPress ,不都有一个安装界面让小白填一下数据库用户名和密码就自动安装了
Joker123456789
2022-05-11 16:50:46 +08:00
都有数据库了,还想着运行在别人的本地? 弄个服务器部署一下 不好吗?
gen900
2022-05-11 17:02:30 +08:00
我把整个 node pkg 成一个 exe ,额外增加了 setup 参数。写了个使用说明,第一次运行要 server.exe setup. 以后就直接运行 server.exe 就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/852045

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX