nikoo
V2EX  ›  问与答

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

  •  
  •   nikoo · May 30, 2018 · 2790 views
    This topic created in 3090 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
    phpcxy
    May 30, 2018 via Android
    1
    你需要数据库版本管理工具
    nikoo
    nikoo
    OP
    May 30, 2018
    2
    @phpcxy 谢谢,也就是说仍然保持每台开发设备都安装一个 mysql,然后用数据库版本管理工具来保持各个设备上调试用的 mysql 表结构以及数据一致?
    nikoo
    nikoo
    OP
    May 30, 2018
    3
    @phpcxy 如果未来可能用 iOS、Android、ChromeOS 之类移动终端进行开发,如何解决这类调试数据库的问题?
    df4VW
    df4VW
    May 30, 2018❤️1
    4
    看你的安全性要求有多高了,现在主流云服务的安全性都已经远超大部分的应用的安全性要求了,只要不作死外网的也很安全呀。

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