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;
|
void dump(std::ostream &os) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
[[nodiscard]] sql::query_context build_add_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]] 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_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);
|
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 {
|
void basic_repository::dump(std::ostream &os) const {
|
||||||
|
os << name_ << std::endl;
|
||||||
for (const auto &node : *this) {
|
for (const auto &node : *this) {
|
||||||
dump(os, node);
|
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 ) {
|
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) {
|
for (auto it = node.info().endpoint_begin(); it != node.info().endpoint_end(); ++it) {
|
||||||
os << " " << node.name() << "::" << it->second->field_name() << " (" << it->second->type_name() << ")";
|
os << " " << node.name() << "::" << it->second->field_name() << " (" << it->second->type_name() << ")";
|
||||||
if (it->second->foreign_endpoint()) {
|
if (it->second->foreign_endpoint()) {
|
||||||
os << " <---> " << it->second->node().name() << "::" << it->second->foreign_endpoint()->field_name() << " (" << it->second->foreign_endpoint()->type_name() << ")\n";
|
os << " <---> " << it->second->node().name() << "::" << it->second->foreign_endpoint()->field_name() << " (" << it->second->foreign_endpoint()->type_name() << ")\n";
|
||||||
} else {
|
} 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) {
|
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 {
|
void schema::dump(std::ostream &os) const {
|
||||||
os << repo_.name() << std::endl;
|
repo_.dump(os);
|
||||||
for (const auto &node: repo_) {
|
|
||||||
os << " " << node.name() << std::endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sql::query_context schema::build_add_constraint_context(const object::repository_node &node,
|
sql::query_context schema::build_add_constraint_context(const object::repository_node &node,
|
||||||
const object::restriction &cons,
|
const object::restriction &cons,
|
||||||
const sql::connection &conn) const {
|
const sql::connection &conn) {
|
||||||
if (cons.is_foreign_key_constraint()) {
|
if (cons.is_foreign_key_constraint()) {
|
||||||
return query::query::alter()
|
return query::query::alter()
|
||||||
.table(node.name())
|
.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,
|
sql::query_context schema::build_drop_constraint_context(const object::repository_node &node,
|
||||||
const object::restriction &cons,
|
const object::restriction &cons,
|
||||||
const sql::connection &conn) const {
|
const sql::connection &conn) {
|
||||||
return query::query::alter()
|
return query::query::alter()
|
||||||
.table(node.name())
|
.table(node.name())
|
||||||
.drop_constraint(cons)
|
.drop_constraint(cons)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue