V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hambman
V2EX  ›  程序员

用不同语言重写 web 应用,数据库如何导入?

  •  
  •   hambman · 2020-11-05 12:43:51 +08:00 · 2114 次点击
    这是一个创建于 1240 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如用 python, rails 写的应用,后期用 go, java 重写,已有的数据如何导入新的应用?

    1 ) 重用数据库,新的应用里仔细定义数据,orm, 和原有数据库兼容
    2 ) 新建数据库,重新建表,写程序导入原有数据

    那一种方法比较常用?
    11 条回复    2020-11-05 23:29:40 +08:00
    janus77
        1
    janus77  
       2020-11-05 12:46:42 +08:00
    数据库还会不兼容吗……不都是那几个
    EminemW
        2
    EminemW  
       2020-11-05 12:47:55 +08:00 via iPhone
    ?看需求
    loliordie
        3
    loliordie  
       2020-11-05 12:49:23 +08:00 via Android
    看你结构有没有改过 比如说重写架构 有可能储存结构也改了 那需要导入

    单纯重写的话 逻辑不改 当然可以直接重用
    boris93
        4
    boris93  
       2020-11-05 12:49:39 +08:00 via Android
    数据库跟应用又没关系
    无非是再配置一次数据库连接罢了
    hambman
        5
    hambman  
    OP
       2020-11-05 12:50:46 +08:00
    @janus77 , 比如多对多的关联,或者数组字段,不同框架( ORM )有不同实现
    @EminemW 需求是尽量简单的导入....
    hambman
        6
    hambman  
    OP
       2020-11-05 12:53:05 +08:00
    @loliordie 不同的语言会用到不同的 ORM, 具体说 flask (sqlalchemny) 迁移到 golang (gorm),
    高级一些的数据库功能,比如多对多的关联,或者数组字段,不同 ORM 也许有不同实现。

    想问问大家有没有遇到这个问题,或者是我多虑了?
    hoyixi
        7
    hoyixi  
       2020-11-05 12:55:46 +08:00
    顺序反了,你在开始重写的时候,首先是设计数据库,直接重用原有数据库?还是变更?然后才会重写应用。不然你写个啥
    imycc
        8
    imycc  
       2020-11-05 12:58:43 +08:00
    复用数据库的话按照之前的模型定义再写一层 ORM 就好了吧。如果是直接用 SQL 的甚至不用换。

    如果是旧系统重构,原有的数据结构太乱了想换掉,那就重新设计吧。
    kop1989
        9
    kop1989  
       2020-11-05 13:30:31 +08:00
    从我的实际理解看,是否重构数据结构和应用代码的重构 /重写完全没关系。
    也就不存在你考虑得这个问题。

    如果是仅仅探讨技术上的可能性的话,那就要先考虑数据结构是否继承,再考虑 dao (数据链路)的实现方式。而并不是反过来。

    从技术上讲:一个成熟的技术语言生态,一定是有成熟的解决方案来适配绝大多数数据库,以及库表结构的。(前提是你的需求合理)
    从软件工程上讲:数据结构是业务信息化实现的根基。非必要(不是因为业务变更,性能问题等)的数据库表结构的重新梳理,带来的副作用很大,工作量更是难以预期的。

    所以完全没有必要因为你更换了应用 /业务层的代码实现,而去考虑是否重新梳理数据库。
    snowhunter
        10
    snowhunter  
       2020-11-05 19:00:58 +08:00
    @hambman 复杂应用还是裸写 sql 好。尽量不要用 ORM 的高级特性
    hambman
        11
    hambman  
    OP
       2020-11-05 23:29:40 +08:00
    @kop1989 👍 ,谢谢回复。
    @snowhunter 赞同.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3276 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:47 · PVG 18:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.