开发机的数据库搭建在哪里?

2018 年 5 月 30 日
 nikoo
现在有一台 Win10 台式机,一台 MacBook Pro,一台 ubuntu Desktop 笔记本
可以很方便的通过 git 将程序代码同步至各个设备进行开发

目前问题是程序使用的 mysql 数据库,
之前在每个设备上单独安装一个 mysql,这样的问题是在设备 A 增加的调试数据在设备 B 上没有,并且设备 A 修改了数据表结构后数设备 B 上要跟着改也很麻烦

目前的考虑的方案是:
1、内网搭建一个公用调试 mysql (存在外网不方便连接的问题)
2、公网搭建一个公用调试 mysql (存在速度问题,安全问题)

有没有更加成熟优雅的方法来解决这一问题?
2393 次点击
所在节点    问与答
16 条回复
phpcxy
2018 年 5 月 30 日
你需要数据库版本管理工具
nikoo
2018 年 5 月 30 日
@phpcxy 谢谢,也就是说仍然保持每台开发设备都安装一个 mysql,然后用数据库版本管理工具来保持各个设备上调试用的 mysql 表结构以及数据一致?
nikoo
2018 年 5 月 30 日
@phpcxy 如果未来可能用 iOS、Android、ChromeOS 之类移动终端进行开发,如何解决这类调试数据库的问题?
df4VW
2018 年 5 月 30 日
看你的安全性要求有多高了,现在主流云服务的安全性都已经远超大部分的应用的安全性要求了,只要不作死外网的也很安全呀。

内网的话可以考虑 docker,CI 每次做下 image 就好了
johnnie502
2018 年 5 月 30 日
1. 每台机器上装 docker
2. 数据库用 migration 的方式初始化,这样数据库的 schema 和 data 就和 code 同步了
loginv2
2018 年 5 月 30 日
公网云主机装一个,但是不开放端口,然后搭建一个 sock5 代理,在本地系统中使用代理工具设置程序和管理软件通过代理访问
WuwuGin
2018 年 5 月 30 日
其实就是 migration 啊,完全可以照着原来的不动,每次更改用 migrate 就行,什么 docker 都不用装,主流 web 框架应该都支持 migrate 的。
20has
2018 年 5 月 30 日
开个 rds 公网访问不就行了么
ebony0319
2018 年 5 月 30 日
@phpcxy 数据库版本控制软件?可以解释一下么。
xiqingongzi
2018 年 5 月 30 日
@ebony0319 #9 比如 rails 的 migratiosn
xiqingongzi
2018 年 5 月 30 日
@ebony0319 #9 说错了,migration
ebony0319
2018 年 5 月 30 日
@xiqingongzi 谢谢。
naiba
2018 年 5 月 30 日
https://tun.cx 内网穿透一下就好了
jingrui
2018 年 5 月 30 日
你们都错了,开发用 h2 内存数据库,随启随用
ecnelises
2018 年 5 月 30 日
如果仅仅是针对你的问题,现代的 Web 框架都有迁移( migration )的功能,每次对数据库的结构改动都会以代码形式保存在代码库中,这样可以保证每个人开发数据库一致。在生产环境部署的时候,这样也比较方便。至于你说的测试数据,把它们当作 seed 就行了。Rails 里可以先跑迁移再填入种子数据。这种情况下,共用一个数据库反而不方便。
phpcxy
2018 年 5 月 30 日
@ebony0319 #9 譬如 PHP 的 Phinx

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

https://study.congcong.us/t/458820

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

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

© 2021 V2EX