V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nikoo
V2EX  ›  问与答

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

  •  
  •   nikoo · 2018-05-30 06:43:03 +08:00 · 2078 次点击
    这是一个创建于 2377 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有一台 Win10 台式机,一台 MacBook Pro,一台 ubuntu Desktop 笔记本
    可以很方便的通过 git 将程序代码同步至各个设备进行开发

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

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

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

    内网的话可以考虑 docker,CI 每次做下 image 就好了
    johnnie502
        5
    johnnie502  
       2018-05-30 07:12:53 +08:00   ❤️ 1
    1. 每台机器上装 docker
    2. 数据库用 migration 的方式初始化,这样数据库的 schema 和 data 就和 code 同步了
    loginv2
        6
    loginv2  
       2018-05-30 07:42:10 +08:00
    公网云主机装一个,但是不开放端口,然后搭建一个 sock5 代理,在本地系统中使用代理工具设置程序和管理软件通过代理访问
    WuwuGin
        7
    WuwuGin  
       2018-05-30 07:47:01 +08:00 via Android
    其实就是 migration 啊,完全可以照着原来的不动,每次更改用 migrate 就行,什么 docker 都不用装,主流 web 框架应该都支持 migrate 的。
    20has
        8
    20has  
       2018-05-30 07:54:38 +08:00 via Android
    开个 rds 公网访问不就行了么
    ebony0319
        9
    ebony0319  
       2018-05-30 07:57:03 +08:00 via Android
    @phpcxy 数据库版本控制软件?可以解释一下么。
    xiqingongzi
        10
    xiqingongzi  
       2018-05-30 07:58:31 +08:00
    @ebony0319 #9 比如 rails 的 migratiosn
    xiqingongzi
        11
    xiqingongzi  
       2018-05-30 07:58:44 +08:00
    @ebony0319 #9 说错了,migration
    ebony0319
        12
    ebony0319  
       2018-05-30 08:00:22 +08:00 via Android
    @xiqingongzi 谢谢。
    naiba
        13
    naiba  
       2018-05-30 08:58:00 +08:00 via Android
    https://tun.cx 内网穿透一下就好了
    jingrui
        14
    jingrui  
       2018-05-30 09:00:21 +08:00 via iPhone
    你们都错了,开发用 h2 内存数据库,随启随用
    ecnelises
        15
    ecnelises  
       2018-05-30 09:29:50 +08:00
    如果仅仅是针对你的问题,现代的 Web 框架都有迁移( migration )的功能,每次对数据库的结构改动都会以代码形式保存在代码库中,这样可以保证每个人开发数据库一致。在生产环境部署的时候,这样也比较方便。至于你说的测试数据,把它们当作 seed 就行了。Rails 里可以先跑迁移再填入种子数据。这种情况下,共用一个数据库反而不方便。
    phpcxy
        16
    phpcxy  
       2018-05-30 09:31:52 +08:00
    @ebony0319 #9 譬如 PHP 的 Phinx
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2563 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:27 · PVG 12:27 · LAX 20:27 · JFK 23:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.