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

2018-05-30 06:43:03 +08:00
 nikoo
现在有一台 Win10 台式机,一台 MacBook Pro,一台 ubuntu Desktop 笔记本
可以很方便的通过 git 将程序代码同步至各个设备进行开发

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

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

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

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

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

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

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

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

© 2021 V2EX