some improvements to dump schema
This commit is contained in:
parent
c6747074f5
commit
0bf945cd13
|
|
@ -114,8 +114,8 @@ public:
|
|||
void dump(std::ostream &os) const;
|
||||
|
||||
private:
|
||||
[[nodiscard]] sql::query_context build_add_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) const;
|
||||
[[nodiscard]] sql::query_context build_drop_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) const;
|
||||
[[nodiscard]] static sql::query_context build_add_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) ;
|
||||
[[nodiscard]] static sql::query_context build_drop_constraint_context(const object::repository_node& node, const object::restriction& cons, const sql::connection &conn) ;
|
||||
|
||||
void insert_table(const std::type_index& ti, const object::repository_node &node);
|
||||
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ utils::result<attribute*, utils::error> basic_repository::primary_key_attribute(
|
|||
}
|
||||
|
||||
void basic_repository::dump(std::ostream &os) const {
|
||||
os << name_ << std::endl;
|
||||
for (const auto &node : *this) {
|
||||
dump(os, node);
|
||||
}
|
||||
|
|
@ -108,15 +109,16 @@ void basic_repository::dump(std::ostream &os) const {
|
|||
}
|
||||
|
||||
void basic_repository::dump( std::ostream& os, const repository_node& node ) {
|
||||
os << "node [" << node.name() << "] (" << node.type_index().name() << ")\n";
|
||||
os << "node [" << node.name() << "]\n";
|
||||
for (auto it = node.info().endpoint_begin(); it != node.info().endpoint_end(); ++it) {
|
||||
os << " " << node.name() << "::" << it->second->field_name() << " (" << it->second->type_name() << ")";
|
||||
if (it->second->foreign_endpoint()) {
|
||||
os << " <---> " << it->second->node().name() << "::" << it->second->foreign_endpoint()->field_name() << " (" << it->second->foreign_endpoint()->type_name() << ")\n";
|
||||
} else {
|
||||
os << " -> " << it->second->node().name() << " (type: " << it->second->node().type_index().name() << ")\n";
|
||||
os << " -> " << it->second->node().name() << " (type: " << it->second->node().name() << ")\n";
|
||||
}
|
||||
}
|
||||
os << "\n";
|
||||
}
|
||||
|
||||
utils::result<repository_node*, utils::error> basic_repository::attach_node(repository_node *node, const std::string &parent) {
|
||||
|
|
|
|||
|
|
@ -219,15 +219,12 @@ schema::const_iterator schema::find(const std::string &name) const {
|
|||
}
|
||||
|
||||
void schema::dump(std::ostream &os) const {
|
||||
os << repo_.name() << std::endl;
|
||||
for (const auto &node: repo_) {
|
||||
os << " " << node.name() << std::endl;
|
||||
}
|
||||
repo_.dump(os);
|
||||
}
|
||||
|
||||
sql::query_context schema::build_add_constraint_context(const object::repository_node &node,
|
||||
const object::restriction &cons,
|
||||
const sql::connection &conn) const {
|
||||
const sql::connection &conn) {
|
||||
if (cons.is_foreign_key_constraint()) {
|
||||
return query::query::alter()
|
||||
.table(node.name())
|
||||
|
|
@ -245,7 +242,7 @@ sql::query_context schema::build_add_constraint_context(const object::repository
|
|||
|
||||
sql::query_context schema::build_drop_constraint_context(const object::repository_node &node,
|
||||
const object::restriction &cons,
|
||||
const sql::connection &conn) const {
|
||||
const sql::connection &conn) {
|
||||
return query::query::alter()
|
||||
.table(node.name())
|
||||
.drop_constraint(cons)
|
||||
|
|
|
|||
Loading…
Reference in New Issue