DatabaseFeaturesForNB65
Database Features for NetBeans 6.5
Contents |
Overall focus/theme for the next release
The overall plan for NetBeans 6.5 can be found here
- Milestone 1 (M1) is slated for June 11, so code freeze will be a week before.
- Milestone 2 (M2) is the beta release on July 30, with feature freeze on July 14.
A primary focus for NetBeans 6.5 is PHP support. Another important focus for us is to improve our basic database tooling.
Our user research has shown that the most important areas in an IDE for database users are:
- Text-based SQL query tools
- Schema management and exploration
- Table data creation/manipulation
NetBeans has basic support for the first two, and currently has no real support for the third. Our focus for this release will be to improve support in all these areas. We are going to pay particular attention to what we can do to make it easier to work with SQL inside language editors, particular the PHP editor.
There are other things we would like to do but which are not planned, such as the ability to refactor databases and create migrations ala Ruby. If time permits, nothing is impossible...
User Research Reference:
A full list of suggestions from our survey participants - very interesting reading
Tools to Look for For Inspiration
- Aqua Data Studio - Very nice SQL support, code completion, find/replace, debugger, etc.
- SQL Yog - Really good SQL support, and very easy to use schema management
- MySQL Workbench - E/R modeling, full reverse/forward engineering, schema diff, very nice!
- Caché Monitor - Freeware SQL tool for a specific database, very fast
Feature List
The defining areas of focus are:
- Improving the developer lifecycle, particularly for PHP, when working with databases
- Improve SQL query editing, execution and results handling
Other very important areas of focus are:
- Schema management (database schema CRUD support)
- Data management (data CRUD support)
- Integration with MySQL Workbench
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| PRIORITY 1 - Defining Features | ||||
| PRIORITY 2 - Committed Features (in order of importance) | ||||
| Improve Developer Lifecycle | ||||
| Code snippets for PHP queries -- DONE | andrei | M1 | 135016 | Should support users adding their own snippets |
| Database connection dialog should not be JDBC-specific -- DONE | davidvc | M1 | 125963 | Very helpful for non-Java users - Aqua Studio does this well. |
| SQL Editing/Executing/Results | ||||
| SQL History | john | M1 | 133811 | This is in high demand. Includes SQL from our tools/wizards and support loading from history |
| Solid code completion | andrei | M2 | 133988 | See Aqua Studio and SQLYog for inspiration |
| Metadata model API | andrei | M1 | 133989 | Just enough to get snippets working, rest for M2 and subsequent releases |
| DataView module | ahi | M2 | This is a module that Ahi's team is providing (thank you!) which provides the following features: edit data for a query result; display number of returned records; sort results based on a column; set page size of results; matchbox to filter results | |
| Code snippets for SQL | Not staffed | Not staffed | 134113 | INSERT, UPDATE, DELETE, CREATE, CALL PROC, etc. See Aqua Data Studio's support for this for an example. This may be somewhat related to PHP snippets. Allow users to add/manage their own snippets. |
| Support for Sakila database | davidvc | M2 | 134307 | |
| Bundle SQL Workbench with NB | jayashri | Dropped for 6.5. We'll revisit post 6.5 after discussions with MySQL team. | ||
| Support for sequences/auto-increment | Not Staffed | 134109 | This appears to be missing, I've heard a number of complaints about this | |
| Various enhancements to DB Explorer API | davidvc | M2 | 134193 | A number of these are really needed for Hibernate support |
| PRIORITY 3 - Stretch Goals (in order of importance) | ||||
| MySQL-Specific Features | ||||
| Show execution plan for MySQL | Not Staffed | 134212 | With other databases to follow | |
| Quick view of table info | Not Staffed | 134213 | SqlYog has a nice feature where there is a tab called "Object Info" that shows the data for the selected object (table, index, view). | |
| Quick view of column info | Not Staffed | 134214 | SQLYog again: each column shows all the information without having to bring up a dialog | |
| Invoke SQL Workbench from NB | davidvc | 134107 | This provides a lot of schema management features that otherwise we wouldn't be able to provide (but only for MySQL) | |
| Full support for MySQL extensions in DDL wizards | When it's a MySQL connection, add all the extra stuff to our wizards. | |||
| Syntax highlighting for MySQL SQL extensions | ||||
| Manage users | Create/remove and manage permissions (see Aqua Studio) | |||
| Display and allow editing of system and runtime MySQL properties | See phpmyadmin for an example of a read-only view | |||
| Show triggers and functions as well as procedures under a MySQL Connection | See Aqua Studio for an example | |||
| -- | ||||
| Export schema to SQL DDL | davidvc | This one has a lot of votes in the survey - David will investigate feasibility | ||
| Export data to INSERT statements | This one also has a lot of requests. I sure would love it. Right now there is no easy way to get data out of a database you're managing in NetBeans. | |||
| Navigate foreign key relationships in results | davidvc | Survey participant idea - very cool - need to coordinate with ahi's integration | ||
| Generate INSERT statements from a result set | Aqua has an interesting way of doing this where they generate the CREATE TABLE too | |||
| Improve standard SQL syntax highlighting | This means we fully understand standard SQL | |||
| Support multiple result sets | Aqua does this by having a separate horizontal pane for each result set. | |||
| Add a tab to DDL wizards to show resulting SQL as it's being built | See Aqua Studio for an example of this | |||
| Save results in various formats | See Aqua Studio for inspiration. Wow. | |||
| Quick and easy way to create database objects | SQLYog shows how it can be made a lot easier | |||
| Quick and easy way to alter database objects | See SQLYog | |||
| Support logging JDBC driver | See log4jdbc | |||
| Versioning for SQL files | Maybe we have this, but there are a lot of requests for it | |||
| Schema browse filters | Some schemas are huge. Allow to filter what tables you pull down when browsing a schema | |||
| Better support for constraints | Currently hidden and not well supported in DB Explorer. Support dropping tables in right order | |||
| Detect SQL injection risks in PHP code | This is actually a big issue for PHP developers | |||
| Generate PHP REST endpoints from DB tables | Very useful for Javascript/JMaki front ends. This may belong with WS team. Note I have contacted the Srividhya and her team is looking into this. | |||
Future Ideas
This section lists areas that we believe are useful but which are not even stretch goals for this release
Usability
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| MySQL Doc plugin | MySQL documentation |
Developer improvements
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| Integrate dbUnit support | Needs more research - survey participant idea |
SQL Editing/Execution/Results
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| Debug stored procedures and triggers | This requires support from the vendor. MySQL first, PostgreSQL second | |||
| SQL "lint" that tells you whether SQL is standard or not | Idea from survey user | |||
| Ability to plug in SQL dialect | This allows other SQL procedural languages to be supported | |||
| Procedural language support | This includes things like unused variables, goto declaration, basic refactoring, etc. MySQL first, PostgreSQL second |
Schema management
| Schema migrations | Provide SQL-based migrations ala Ruby on Rails. Related to schema refactoring below, but this has to do with versioning... | |||
|---|---|---|---|---|
| Schema compare/diff | Note this is already supported in MySQL WorkBench, but we want a generic solution (not specific to MySQL) | |||
| Schema refactoring | See liquibase refactoring tool, which we could integrate. Things like rename table, combine tables, split table, etc. | |||
| Cache schema definitions | A performance improvement |
Data Management
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| Import data from a CSV | A cool thing to do here is create the schema as part of import | |||
| Import/export from/to another database | This could import/export the schema too | |||
| Import data from XML | ||||
| Export data to CSV | ||||
| Export data to XML | ||||
| Import data from JSON | ||||
| Export data to JSON | ||||
Administration
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| Manage users | ||||
| Manage rights for users (GRANT/REVOKE) | ||||
E/R Diagram
There are a lot of requests for this, but not as high priority as the other things we need to address. MySQL WorkBench will solve this if we can integrate with it in some way...
| Feature | Owner | Milestone | Issue Number | Comments/Description |
|---|---|---|---|---|
| Read-only E/R diagram | Need to be able to select subset of tables (see next feature) | |||
| Contextual E/R diagram | Show only a subset, based on current query, for example, and add as needed. This is often more readable than the entire schema. | |||
| Export E/R diagram to image | ||||
| Export E/R diagram to HTML | ||||
| Browser-based E/R diagram tool | May be out of scope for this team? | |||
| Writeable E/R diagram | ||||
| Generate database schema from E/R diagram | ||||
| Generate SQL from an E/R diagram | ||||
Visual Query Editor
This area is about improving or potentially rewriting the Visual Query editor. This is off our radar, but perhaps someone else wants to take this on.
