HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_ORMMigration.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: UT_ORMMigration.h
7  *
8  * COMMENTS:
9  *
10  */
11 
12 #ifndef __UT_ORMMIGRATION_H__
13 #define __UT_ORMMIGRATION_H__
14 
15 #include "UT_API.h"
16 
17 #include "UT_Array.h"
18 #include "UT_ORMOperation.h"
19 #include "UT_StringHolder.h"
20 #include "UT_UniquePtr.h"
21 
23 class UT_ORMSchemaEditor;
24 
26 {
27 public:
28  explicit UT_ORMMigration(
29  const UT_StringHolder& model_name,
30  const UT_StringHolder& name)
31  : myModelName(model_name), myName(name)
32  {
33  myHistoryId.format("{}.{}", myModelName, myName);
34  }
35  ~UT_ORMMigration() = default;
37 
38  void mutateState(UT_ORMMigrationState& state, UT_ErrorCode& ec) const;
40  UT_ORMMigrationState& project_state,
41  UT_IORMSchemaEditor& schema_editor,
42  UT_ErrorCode& ec);
43 
44  UT_ORMCreateTableOperation& createModel(const UT_StringHolder& table_name);
45  UT_ORMDropTableOperation& dropModel(const UT_StringHolder& table_name);
46  UT_ORMAddFieldOperation& addField(
47  const UT_StringHolder& model_name,
48  UT_ORMModelStateField&& col);
49  UT_ORMRenameFieldOperation& renameField(
50  const UT_StringHolder& model_name,
51  const UT_StringHolder& cur_name,
52  const UT_StringHolder& new_name);
53  UT_ORMRemoveFieldOperation& removeField(
54  const UT_StringHolder& model_name,
55  const UT_StringHolder& name);
56  UT_ORMUniqueConstraint& addUniqueConstraint(
57  const UT_StringHolder& model_name,
58  const UT_StringHolder& name,
59  const std::initializer_list<UT_StringHolder>& fields,
61 
62  void addDependency(const UT_StringHolder& mig_name)
63  {
64  myDependencies.emplace_back(mig_name);
65  }
66  const UT_StringArray& dependencies() const { return myDependencies; }
67 
68  const UT_StringHolder& historyId() const { return myHistoryId; }
69 
72 
73 protected:
77 };
78 
79 #endif // __UT_ORMMIGRATION_H__
UT_StringArray myDependencies
UT_StringHolder myHistoryId
const UT_StringHolder myName
const UT_StringHolder & historyId() const
#define UT_API
Definition: UT_API.h:14
const UT_StringArray & dependencies() const
static const UT_StringHolder theEmptyString
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
GLuint const GLchar * name
Definition: glcorearb.h:786
const UT_StringHolder myModelName
UT_ORMMigration(const UT_StringHolder &model_name, const UT_StringHolder &name)
std::error_code UT_ErrorCode
Definition: UT_ErrorCode.h:20
UT_Array< UT_UniquePtr< UT_IORMOperation > > myOperations
void addDependency(const UT_StringHolder &mig_name)
state
Definition: core.h:2289