当前位置: 首页 > 面试题库 >

应对不断变化的MySQL架构要求的策略?

鲁才艺
2023-03-14
问题内容

我在一个非常早期的项目中使用了针对ORM的Hibernate EntityManager和Hibernate
Annotations。该项目需要尽快启动,但是规格会不断变化,我担心系统会启动并会收集实时数据,然后规格会再次发生变化,而我将需要更改数据库架构。

我如何设置东西以最大程度地减少这种影响?是否有任何开源项目可以处理这种迁移?Hibernate可以自动执行此操作(不擦除数据库)吗?

非常感谢您的建议。


问题答案:

它比功能性或组织性问题多于技术性问题。没有工具会自动猜测如何将数据从一种模式迁移到另一种。您最好学习如何编写存储过程以迁移数据。

您可能需要禁用约束,创建临时表和列,复制大量数据,然后删除临时表和列并重新启用约束以迁移数据。

一旦进入维护模式,所有修改架构的新功能都应随附脚本,该脚本允许从生产中的当前架构和数据迁移到新的架构。



 类似资料:
  • 15.2. 应对需求变化 尽管你竭尽努力地分析你的客户,并点灯熬油地提炼出精确的需求,但需求还是会是不断变化。 大部分客户在看到产品前不知道他们想要什么。即便知道,也不擅于精确表述出他们的有效需求。即便能表述出来,他们在下一个版本一定会要求更多的功能。 因此你需要做好更新测试用例的准备以应对需求的改变。 假设你想要扩展罗马数字转换函数的范围。还记得 没有哪个字符可以重复三遍以上 这条规则吗? 呃,

  • 以下Dockerfile一直在构建错误的体系结构: 注:我不能使用buildx,因为我需要为不同的体系结构安装特定的工具 arm64/Dockerfile docker build: docker inspect: 输出:(应该是arm64而不是amd64)?

  • 问题内容: 我知道不可变对象始终具有相同的状态,即它们实际创建时的状态。它们的不变量由构造函数建立,并且由于它们的状态在构造后不会更改,因此这些不变量始终保持良好状态,这就是为什么可以在多线程环境中安全发布它们的原因。很好,但是由于我们生活在一个动态的世界中,程序的状态不断变化,如果通过不可变的对象构造程序的状态,那么这些对象会给我们带来什么好处? 问题答案: 您已经回答了“这些物品能给我们带来什

  • 我想用以下语法在MySQL中创建一个新用户: 但是它会返回一个错误: 您的密码不满足当前的策略要求。 我试过很多密码,但都不好使。我该如何解决这个问题?

  • 由于双向数据绑定的本质,在Angular 1中不能保证父节点在子节点之前总是被检查。 有可能子节点可以改变父节点或兄弟节点或树中的任何其他节点,这又会在链中触发新的更新。 这使得变化检测机制难以遍历所有节点,并可能掉入具有臭名昭着的“震荡”循环中: 在Angular 2中,改变被保证单向传播。 更改检测器将遍历每个节点一次,始终从根开始。 这意味着父组件始终在其子组件之前检查。

  • 问题内容: 我有一个Java应用程序,它通过hibernate使用MySQL数据库。数据库实际上是用作持久层:在程序的初始加载时读取数据库,然后将记录保存在内存中。 但是,我们增加了额外的复杂性,其中另一个进程也可能会更改数据库,并且更改可以反映在Java应用程序上将非常好。但是,我并不特别喜欢每隔几秒钟就查询数据库的拉动机制,尤其是很少更新数据库。 有没有一种方法可以使回调监听数据库的变化?触发