REVIEW: Database Creator is here!

Finally the wait is over! The greatly anticipated Database Creator is here for your preview! As Wappler is approaching version 3.0 - this will be one of it's greater features, so we are giving you an early preview so you can provide us with valuable feedback before the final release.

What is the Database Creator?

The Database Creator makes it easy for you to connect to any database and manage it’s structure.

You can create new database tables or edit existing ones, add, edit or remove table columns and other database schema operations.

Easy Visual Overview of you Database

In The Database Creator you have a great visual overview of all your database tables, history of your changes and database seeds.

Powerful Schema Editor

Till now you had to do this only with external tools like PHP MySQL Admin, Navicat or MySQL Workbech, but now we have it all integrated in Wappler with much more simplicity and powers than the other tools offer.

Full Version Control

With Database Creator you can do much more than just table structure edits - you have a full control of applied changes and can revert them as needed or reapply them to your live database server so everything is in sync.

Based on Proven Technology

Internally we use KnexJS for the Database Connectivity and transaction control. Next to included native drivers for MySQL, Postgres and SQLite.

Also the Database Connector fully integrates with Docker and Server Connect. So your existing database connections will be recognized instantly and enable you to work straight with your existing database

How does it work

For this preview you can work with your existing database connections from Docker or Server Connect. When you open the Database Creator panel those will be instantly visible

image

Everything is related to the Active target, so make sure you have selected the right target to work on.

Connect to a Database

Also Database Creator connects directly to your database, so for remote targets you will need to allow direct connections.

For your local development it is much easier as the connection info will be picker up automatically it is local, so you don’t need to enable special direct connections, but for remote targets you will need to enable direct connection:

image

Managing Your Database Tables

For the most actions of the Database Creator you will be using the context menu.
It is context aware and it shows different options, based on the node that you have clicked on:

image

You can easily create new Database Table by right clicking on the “Tables” node:
image
Or use the shortcut key [+]

Then just enter the new table name and enter when complete:
image

You will see immediately a visual indicator that a new item is created:
image

Let’s create some fields in it, again with the context menu or key [ + ]
image

Again you fill in the field name and press enter when done:
image

When a field is selected you will see it’s properties in the property inspector:

You can go there and choose the right type of the field you want:
image

As you can see we support many field types and those are made more generic and cross database compatible. The details of the various field types you can find on Knex Database Field Types

Those field types are translated automatically to the most closely native database types.

There are also some special types like “Increments” that are really handy shortcuts for all those auto incremental primary keys and are very handy to use.

Let’s make our new field of type “Increments” as it will be our primary unique key.
image

Then add some more fields

Note as the icons on the right side, indicates those are changes you haven’t apply that yet to your database.

It is important to understand the workflow here. You are first collecting your changes and then apply them as one single action. This will keep your changed organized and offer you the chance to reapply them to your live database later on.

Also keeping changes well organized will allow you to easily roll them back if something goes south.

Applying your changes

When you are done with your changes it is time to apply them. You will see an indicator of the number of changes that you have made till now.

You can click on it to save and apply those changes, a popup appears first that allows you to give your changes a nice description:

image

So enter something meaningful about the changes that you made. It will be listed further in your change history and be used for live apply or rollback, so make sure it is a good description.

When you clock on OK the changes will be saved, applied

image

The database structure refreshed and you will see your new table. Also the changes count will be reset:

image

If you explore further, you will see your changes now visible under the “Changes” branch.

image

There you will see your specific change (1) with green checked icon,which means that it is executed and the blue icon (2) meaning it is the current version.

You have various actions available that you can do with those changes later on:

image

Reverting changes

You can easily revert the change, by clicking on “Undo this change” so click on it and you change will be reverted:
image

Then check your database structure:

image

You can see that the table you just created is gone now. And the change line is now orange icon without a check - meaning that the change is not done.

you can simply reapply the change:

image

And again your database includes perfectly the change now. The new Orders table is in there and the change is again market as done:

image

Applying changes to production

The way changes are applied is actually the way you will be publishing to your live server!
Just switch the target to your live server and you will see that the changes aren’t applied yet there - so just apply them at once by clicking on the “Apply Latest Changes”

image

And your live server will be automatically updated!

Inspecting the Change code

As changes are store in files, you can easily inspect their context to clearly understand what is going on, just click on “Open In Editor”

image

Then you will see the automatically created code for you, according to the KnexJS standard:

Working with Data

In The Database Creator, you can also directly inspect your table data! Just right click on a table and select “Edit Table Data”

image

A nice popup will appear with all the table data!

Note this is currently view only - will be implementing the real editing later on.

Conclusion

I hope you got a bit taste of the new upcoming Database Creator and it’s powers! We will be finalizing it and extending with much more functionality the coming up weeks to prepare it fully for Wappler 3.0 release.

So have a good test on it and let us know what you think.

More to come

A lot more functionality will be still coming up, so don’t worry if you don’t find everything yet! We are just getting started! So soon you will see things like:

  • Database Relations
  • Indexes and keys
  • Display Settings fields to be used by Front-End generators
  • Validation

So go explore and try it out!

19 Likes

Amazing update well done guys :tada: :tada: I’ve been looking forward to this for a long time :grin:

WOW!
Can’t wait to have a play…
Thank you Wappler team for your incredible throughput of amazing new features! :pray:

Amazing work guys! I knew you wouldn’t disappoint!

I will be testing extensively and providing feedback.

Another happy Thursday :slight_smile:

Great job guys; any hope for the oracle users?

Performance is very slow. Tables with more than a few hundred records won’t even open at all. Still missing a way to filter table data as well. Can’t seem to make any changes to data … save button says not implemented yet. I think it is still too early in the process for this feature. Looks promising but in this very early stage it isn’t very useful … yet.

I do look forward to seeing where it goes.

Very well and exiting. :+1::+1::+1: Looking forward to having visual database schema relation in form of diagram in the future (if possible). :heart_eyes:

1 Like

That's another problem Brad, not related to the records count.
And yes - it's still a preview so you can provide feedback :slight_smile:

Not sure what to you mean it's not useful, but have you checked creating a table, setting a field type, making and applying changes, reverting changes? Isn't doing anything of this without a third party app useful for you?

Live data editing is under very early preview and it is currently view only as indicated above.

You should focus on database creation and schema management initially.

I really can't do much with it all (I know it's still very early).

Try editing data in a table that has more than 100 or so rows It doesn't open editor ... have to quit Wappler and re-open to get it to stop.

Screen Shot 2020-05-07 at 10.03.54 AM

Tried something simple like adding a new table. I get the following error on updating changes.

George, let me tell you that you and your team are geniuses

3 Likes

This is another "Docker style" feature.

It will take time to sell, but once sold there is no turning back. When they mentioned Navicat in the "Countdown to 3.0" post I knew they were missing the real benefits of what you were trying to implement.

Brad still doesn't know that he wants it :smiley:

Some people say, "Give the customers what they want." But that's not my approach. Our job is to figure out what they're going to want before they do. I think Henry Ford once said, "If I'd asked customers what they wanted, they would have told me, 'A faster horse!'" People don't know what they want until you show it to them. That's why I never rely on market research. Our task is to read things that are not yet on the page.

-Steve Jobs

5 Likes

Waooooow! Great Tool!!! Keep up the great work Wappler Team!!!

No human work is perfect, what you do is remarkable

1 Like

Probably true lol :wink:

2 Likes

I am doing an incredible job of self control to finish my current sprint before installing 2.9
It’s proving to be quite difficult because what is left is writing test specs…

Great tool but it’s crashing my Wappler, when trying to select my remote database I’m getting this:
Capture

It times out and Wappler hangs - I have to restart completely. I’m running Windows 7. I’m switching off now but will try a removal / reinstall in the moring and report back my findings…

Wow! Amazing !
Thank s thank s thank s
for new users (me) its awsome!

2 Likes

Just tested. My existing MYSQL primary key int is detected as Integer (without primary and unique ticked), and another, tinyint column is detected as Boolean. Set type field is detected as Native (without the Set values being displayed).

Added a new field > Boolean without default set, the result is tinyint (1), then added another field > Integer, the result is int(255). Guess I have to read more about Knex? Hopefully this will make life easier not more complicated. :slightly_smiling_face: