nikoo
V2EX  ›  问与答

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

  •  
  •   nikoo · May 30, 2018 · 2517 views
    This topic created in 2930 days ago, the information mentioned may be changed or developed.
    现在有一台 Win10 台式机,一台 MacBook Pro,一台 ubuntu Desktop 笔记本
    可以很方便的通过 git 将程序代码同步至各个设备进行开发

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

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

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

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