Giter VIP home page Giter VIP logo

meow-sql's Introduction

MeowSQL ๐Ÿ™€

MeowSQL is an attempt to port a very useful GUI database client HeidiSQL to C++/Qt (with aim to be run natively at least on Linux)

MeowSQL Gif

Download/Install

Download installer for Windows or AppImage(how to run) for Linux on releases page.

Features

The app is in development stage at the moment and was never carefully tested, though it can be run and do some work (warning: do not use in production!!!).

  1. Works on Windows and Linux, in theory can be compiled on any platform with Qt5 and mysql-client support
  2. At the moment supports MySQL and PostgreSQL (early stage).
  3. Sessions manager: managing multiple connections (warn: no password encryption!)
  4. Connection to multiple sessions (=servers) at once (with multiple databases).
  5. Tree of db objects like databases and tables/views/striggers/functions/procedures - (MySQL + Postgres).
  6. Table: view columns (editable), indexes (editable) and foreign keys (editable) - (MySQL only).
  7. Table: view data (basic edit) - (MySQL + Postgres).
  8. SQL: editor with simple syntax highlighting (no autocomplete).
  9. SQL: execute multiple statements at once and see results of SELECT statements
  10. Create and drop tables - (MySQL only)
  11. Making dumps - (MySQL only via mysqldump)
  12. Initial SQLite 3 support (read-only)

Contributing

MeowSQL is a port of HeidiSQL, so just clone the sources and start rewriting Delphi code to Qt/C++ :

  1. Pick up any issue or any feature from roadmap.
  2. Replace TODOs with working code ๐Ÿ˜ธ
  3. Test the app and report bugs
  4. Star the repo โญ

Use/subbranch develop, not master branch.

How to build (for developers)

Note: both QMake and CMake are supported at the moment

Linux:

  1. You need gcc (or other compiler) with c++11 support
  2. Qt (tested with 5.6-5.15, apt-get install qt5-default) and QMake (Optionally: Qt Creator) or CMake
  3. Clone the repo
  4. libmysqlclient library, for deb-based distros: apt-get install libmysqlclient-dev
  5. (Optional) Debian: sudo apt-get install mysql-server
  6. (Optional) Install test db: https://dev.mysql.com/doc/sakila/en/
  7. PostgreSQL client library libpq, for deb-based apt-get install libpq-dev postgresql-server-dev-all
  8. As an option use Qt Creator - just open ./meow-sql.pro or ./CMakeLists.txt

Windows (Actual):

  1. Download and install Qt 5 (5.6-5.15) via online-installer https://www1.qt.io/download-open-source/#section-2

  2. You would need a cpp compiler of course, I've got MS Visual Studio 2017 (Community)

  3. You should have CMake (already shipped with VS)

  4. Install Conan from conan.io

  5. Clone the repo and install conan packages (use your compiler/arch/etc):

     $ mkdir conan && cd conan
     $ conan install .. --settings arch=x86 --settings arch_build=x86 --settings build_type=Release --build=missing
    
  6. Open ./CMakeLists.txt in VS or Qt Creator (QMake is not supported on Win!)

  7. After build run windeployqt (or copy all libs from installed app)

Windows (Obsolete):

  1. Download and install Qt via online-installer https://www1.qt.io/download-open-source/#section-2 Version that worked for me is Qt 5.6.2 win32-msvc2013
  2. You would need a cpp compiler of course, I've got MS Visual Studio 2013 (Community)
  3. You should have QMake (plus I used Qt Creator) or CMake
  4. I've downloaded MySQL Connector C 6.1 (C not C++), and seems put all necessary files into third_party/
  5. I've downloaded PostgreSQL's libpq, and seems put all necessary files into third_party/ (Note: seems CMAKE still looks into C:/Program Files, so try to download and install PG 10.7 32bits here https://www.enterprisedb.com/downloads/postgres-postgresql-downloads)
  6. As an option use Qt Creator - just open ./meow-sql.pro or ./CMakeLists.txt
  7. After build (only release worked for me), run windeployqt (or copy all libs from installed app)

Mac OS:

  1. Install XCode
  2. Download and install Qt via online-installer https://www1.qt.io/download-open-source/#section-2 Install Version 5.9.8
  3. You need to download MySQL Connector C and libpq. I recommend to use homebrew and simply use brew install mysql-connector-c libpq
  4. make sure header files are available in /usr/local/include. If you installed via homebrew just create symlink ln -s /usr/local/opt/mysql-connector-c/include /usr/local/include/mysql/mysql and ln -s /usr/local/opt/libpq/include /usr/local/include/postgresql
  5. open ./meoq-sql.pro in Qt Creator and build
  6. If you get errors about missing .dylib Files (e.g. libJPEG.dylib) make sure you uncheck "Add build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH" in Project Settings in Qt Creator (see https://stackoverflow.com/questions/35509731/dyld-symbol-not-found-cg-jpeg-resync-to-restart)

License

This project is licensed under the GPL 2.0 License

Translations

If you want to translate MeowSQL to your language, open corresponding resources/translations/meowsql_*.ts file.

Use either Qt Linguist or in any text editor remove ( type="unfinished") from translation section:

<translation type="unfinished">ADD TRANSLATION HERE</translation>

Then create merge request (see also resources/translations/README.txt).

Acknowledgments

Donation

meow-sql's People

Contributors

mirsch avatar ragnar-lodbrok avatar tommettam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meow-sql's Issues

Crash when inserting data in this table (columns missing in meow)

I have this table:

CREATE TABLE `characters` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(10) unsigned NOT NULL,
  `name` char(50) NOT NULL,
  `world_id` int(10) unsigned NOT NULL,
  `x` int(10) unsigned NOT NULL,
  `y` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_character` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4

When I try to insert a row into this table with meow-sql, it crashes.
After some investigation, I notice that the tab 'Basic', which shows the columns in the table, doesn't show the x and y columns (only the first four columns are shown). The tab 'Data' however does show the x and y column. But when I try to insert data in that tab, meow-sql crashes.

Deal with spatial data as binary

Parse spatial/geometry data as binary (not Unicode string as now) and display as hex.

Example: sakila.address.location is GEOMETRY column and not shown correctly.

Clear Allow NULL for primary key columns

Steps:

  1. Create new table
  2. Add new column that has Allow NULL = true
  3. Add Primary Key with column from 2
    Result: Error on save: "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead"
    Expected: column from 2 will auto change Allow NULL to false.

Table Data: better multi-line text displaying

If table data cell has multi-line content, e.g.:

str1
str2
str3

... it will be displayed as str1str2 without ellipsis at the end and white spaces (more over str3 will not be shown at all).
Need to display it with white spaces at place of linebreaks and with "..." at the end if the string is too long.

HeidiSQL developer offer

Hello Ragnar.

HeidiSQL' developer has an offer to make, that maybe interest you.
Could you please take a look at his post?

Show SQL statements

Hello,

This is not directly an issue, but more a feature request.
HeidiSQL show the SQL queries of all the actions you do in the GUI. Could this also be implemented?

Help to the Project

It's my dream to run HeidiSQL natively on Linux and I know many developers who want it too. So @ragnar-lodbrok maybe we can help somehow to the project? Could you set up a sponsoring profile on Github?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.