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

搞 WEB 的童鞋,请问大家怎么管理数据库的?用什么方法能方便的把整个项目在一台新机器跑起来?

  •  
  •   LuckyHJH · 2015-06-15 15:18:25 +08:00 · 2744 次点击
    这是一个创建于 3438 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是个PHPer,平时会用git和bitbucket来管理代码,最近突然想到一个问题,怎样才能把整个项目给别人?我在一台新机器把代码clone出来了,但才发觉只有代码没有数据库,在本地根本跑不起来啊!
    所以想请教各位搞WEB开发的(不一定是PHP),你们是怎么管理数据库?怎样才能方便地在一台干净的机器跑起来?
    15 条回复    2015-06-15 16:54:34 +08:00
    randyzhao
        1
    randyzhao  
       2015-06-15 15:21:23 +08:00
    写一个 database.sql
    再写一个 install_database.sh
    LuckyHJH
        2
    LuckyHJH  
    OP
       2015-06-15 15:23:47 +08:00
    我平时导入项目的方法比较粗暴,都是直接拿下代码,然后把sql导入数据库,修改数据库相关的配置,然后设置目录权限什么的就把项目跑起来了。但是有时候开发途中,修改代码的同时数据库的结构也会修改,于是这时管理数据库起来就麻烦了……难不成要导出个sql再一起更新到git?
    binux
        3
    binux  
       2015-06-15 15:28:30 +08:00
    难不成要导出个sql再一起更新到git
    是的
    LuckyHJH
        4
    LuckyHJH  
    OP
       2015-06-15 15:29:17 +08:00
    @randyzhao 所以就是把数据库导出为database.sql,然后也更新到git咯。
    只是觉得有点麻烦,并且开发途中会有好多测试数据,然后我本人有少少洁癖(强迫症?)……会觉得这样数据库不漂亮 - -
    cevincheung
        5
    cevincheung  
       2015-06-15 15:30:55 +08:00
    用sqlite……
    wesley
        6
    wesley  
       2015-06-15 15:32:57 +08:00
    如果你用laravel框架开发的话,直接执行 php artisan migrate
    LuckyHJH
        7
    LuckyHJH  
    OP
       2015-06-15 15:33:57 +08:00
    @binux 如果数据库比较大呢?
    LuckyHJH
        8
    LuckyHJH  
    OP
       2015-06-15 15:36:30 +08:00
    @wesley 是啊!所以最近都在学laravel了,一个牛逼碉堡的框架。
    但以前还是有不用laravel的情况……
    binux
        9
    binux  
       2015-06-15 15:49:15 +08:00
    @LuckyHJH 数据不导出啊,你程序难道缺了数据就不能跑了吗?
    randyzhao
        10
    randyzhao  
       2015-06-15 16:22:46 +08:00
    @LuckyHJH 设计数据库的时候, 就把 database.sql 都写好了.
    之后如果有修改, 只向 database.sql 里提交非数据的内容. alter 什么的

    然后搭建新环境 只需要运行 install_database.sh 就可以了.

    其实我们还有一个 data.sql, 里面存放的是一些静态表的数据, 比如: 城市表.
    这些数据, 同样以 sql 文件的形式在 git 中维护.
    ksupertu
        11
    ksupertu  
       2015-06-15 16:24:59 +08:00
    docker打包个镜像
    9hills
        12
    9hills  
       2015-06-15 16:28:33 +08:00
    database.sql 里放的是建表语句

    tests/data.sql 里可以放测试用的测试数据,强烈建议把测试数据也保存起来。。
    oott123
        13
    oott123  
       2015-06-15 16:44:13 +08:00
    好好写数据库迁移……
    xujif
        14
    xujif  
       2015-06-15 16:48:07 +08:00
    这时候才体会到migrate的魅力
    alayii
        15
    alayii  
       2015-06-15 16:54:34 +08:00
    vagrant 一个数据库虚拟机,共用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2804 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 00:22 · PVG 08:22 · LAX 16:22 · JFK 19:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.