代码之家  ›  专栏  ›  技术社区  ›  RC.

用于在开发数据库上创建类似“测试”的环境的工具

  •  1
  • RC.  · 技术社区  · 14 年前

    我们在生产中有一个Oracle企业数据库,另一个实例同时用作QA和开发数据库。QA要求在数据库中为它们提供单独的模式,这样它们就可以测试独立于开发人员所做更改的应用程序。例如,假设在开发中使用的模式和将在生产中使用的模式称为app_owner,而app_owner可能包含对其他模式中的表(例如在base_owner中)具有fk引用的表。其想法是创建一个qa-app-owner模式,将生产数据拉入该模式,并将任何引用到qa-app-owner模式的基所有者表拉入该模式。一个简单的例子是:

    Prod Setup:
    ----------------
    BASE_OWNER.users
    APP_OWNER.users (synonym to BASE_OWNER.users)
    APP_OWNER.audit_users with FK to BASE_OWNER.users
    
    QA Setup:
    ----------------
    QA_APP_OWNER.users  (copied data from prod)
    QA_APP_OWNER.audit_users (FK to APP_OWNER.users)
    

    这应该是可能的,因为我们不编写包含模式的代码/SQL。(即,我们为运行应用程序的模式之外的表创建基于模式的同义词)

    我的问题是,有没有好的工具可以轻松创建这样一个qa-app-owner模式?我知道fromuser-touser的导出选项,但如果我记得正确的话,这会将整个架构移动到另一个架构,但它不会让我一直到我想成为b/c的地方,我需要更改fks上的引用。我不知道如何才能导出DDL,手动更改它,然后手动导入数据。这不是一个有吸引力的选择,因为许多引用都指向同样引用其他表的表,并且app_owner模式本身也有过多的表。我担心的是,越是手工操作,越有可能出现错误,当移动到生产环境中时,被测试的东西就越容易被破坏。一个不错的解决方案是同时为Oracle的dev和qa实例提供许可证,但我被告知这样做“不在预算之内”。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Alex Poole    14 年前

    impdp REMAP_SCHEMA

    expdp QA_APP_OWNER

        2
  •  3
  •   Matthew Watson    14 年前