@Tyler_Cox wrote:
I am using an SQLite database, mostly because that is what the project started with, however I am willing to move it over to a MySQL database, which I probably will in the future for the better features.
I am trying to transfer virtual relationships using the json schema upload/modify tools.
When I create a new table with the upload, and I pass in a table schema with the relationship description afterwards, the table is created but the relationships are not brought in. If I then try to modify the json schema in the dreamfactory tools, and the press save, it says I can't alter in sqlite, but if I do it using MYSQL it says:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (
bitnami_dreamfactory
.db_virtual_relationship
, CONSTRAINTdb_virtual_relationship_ref_service_id_foreign
FOREIGN KEY (ref_service_id
) REFERENCESservice
(id
) ON DELETE CASCADE) (SQL: insert intodb_virtual_relationship
(type
,service_id
,table
,field
,ref_service_id
,ref_table
,ref_field
,junction_service_id
,junction_table
,junction_field
,junction_ref_field
,ref_on_update
,ref_on_delete
,last_modified_date
,created_date
) values (has_many, 8, loans, loan_id, 10, Collateral, loan_id, , , , , , , 2017-03-02 17:19:42, 2017-03-02 17:19:42))It looks like it is trying to (in both sqlite and mysql) insert the relationships, but all I want it to do is have dreamfactory remember the virtual relationships, just like it does when i successfully create them manually. What am I supposed to do so I don't have to go through an entire list of relationships and re-create them every time I want to move to a different location for local testing?
Here is an example json schema:
{ "alias": null, "name": "loans", "label": "Loans", "description": null, "native": [], "plural": "Loans", "is_view": false, "primary_key": "loan_id", "name_field": null, "field": [ { "alias": null, "name": "loan_id", "label": "Loan Id", "description": null, "native": [], "type": "id", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": false, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": true, "is_primary_key": true, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "client_id", "label": "Client Id", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "loan_start_date", "label": "Loan Start Date", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "loan_points", "label": "Loan Points", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "loan_amount", "label": "Loan Amount", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "loan_contract_id", "label": "Loan Contract Id", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "late_payment_fee", "label": "Late Payment Fee", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "days_late_before_charged", "label": "Days Late Before Charged", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "loan_group", "label": "Loan Group", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "package_id", "label": "Package Id", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "next_payment_due_timestamp", "label": "Next Payment Due Timestamp", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "last_payment_id", "label": "Last Payment Id", "description": null, "native": [], "type": "integer", "db_type": "int(11)", "length": 11, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "origination_fee", "label": "Origination Fee", "description": null, "native": [], "type": "float", "db_type": "float", "length": null, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "late_fee_cache", "label": "Late Fee Cache", "description": null, "native": [], "type": "float", "db_type": "float", "length": null, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "interest_cache", "label": "Interest Cache", "description": null, "native": [], "type": "float", "db_type": "float", "length": null, "precision": null, "scale": null, "default": null, "required": true, "allow_null": false, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "payment_cache", "label": "Payment Cache", "description": null, "native": [], "type": "float", "db_type": "float", "length": null, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "principle_cache", "label": "Principle Cache", "description": null, "native": [], "type": "float", "db_type": "float", "length": null, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "balance_cache", "label": "Balance Cache", "description": null, "native": [], "type": "float", "db_type": "float", "length": null, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": false, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false }, { "alias": null, "name": "status_cache", "label": "Status Cache", "description": null, "native": [], "type": "text", "db_type": "text", "length": null, "precision": null, "scale": null, "default": null, "required": false, "allow_null": true, "fixed_length": false, "supports_multibyte": true, "auto_increment": false, "is_primary_key": false, "is_unique": false, "is_index": false, "is_foreign_key": false, "ref_table": null, "ref_field": null, "ref_on_update": null, "ref_on_delete": null, "picklist": null, "validation": null, "db_function": null, "is_virtual": false, "is_aggregate": false } ], "related": [ { "alias": null, "name": "clients_by_client_id", "label": "Clients By Client Id", "description": null, "native": [], "type": "belongs_to", "field": "client_id", "is_virtual": true, "ref_service_id": 10, "ref_table": "clients", "ref_field": "client_id", "ref_on_update": null, "ref_on_delete": null, "junction_service_id": null, "junction_table": null, "junction_field": null, "junction_ref_field": null, "always_fetch": false, "flatten": false, "flatten_drop_prefix": false } ], "access": 31 }
Edit: Also, I have tried using the normal import and export tools in dreamfactory for the service and database, and it also does not bring through the virtual relationships.
Posts: 1
Participants: 1