{"id":94312,"date":"2020-05-01T06:25:59","date_gmt":"2020-04-30T22:25:59","guid":{"rendered":"http:\/\/4563.org\/?p=94312"},"modified":"2020-05-01T06:25:59","modified_gmt":"2020-04-30T22:25:59","slug":"%e6%95%b0%e6%8d%ae%e5%ba%93%e5%ae%a2%e6%88%b7%e7%ab%af%e6%96%b0%e9%80%89%e6%8b%a9%ef%bc%9a-dbkangaroo","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=94312","title":{"rendered":"\u6570\u636e\u5e93\u5ba2\u6237\u7aef\u65b0\u9009\u62e9\uff1a DBKangaroo"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  \u6570\u636e\u5e93\u5ba2\u6237\u7aef\u65b0\u9009\u62e9\uff1a DBKangaroo               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : andytao <\/span>  <span><i><\/i> 21<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<h1>DBKangaroo News Timeline<\/h1>\n<p> <\/p>\n<h2>Kangaroo v0.19.1.200413<\/h2>\n<ol>\n<li>Implement copy object name menu on dbtree.<\/li>\n<li>Implement copy as SQL(Insert\/Update\/Delete) in the datagrid.<\/li>\n<li>Implement copy as TSV in the datagrid<\/li>\n<li>Implement copy as CSV in the datagrid<\/li>\n<li>Implement copy as PHP array in the datagrid<\/li>\n<li>Implement copy as JSON in the datagrid<\/li>\n<li>Improve paned widget border style.<\/li>\n<li>fixed: crashed while stringize the blob column<\/li>\n<li>fixed: crashed while no primary key<\/li>\n<li>fixed: crashed while primary key contain character(_)<\/li>\n<li>fixed: warning message while column with empty value<\/li>\n<li>fixed: warning message while invalid calling(to_string)<\/li>\n<\/ol>\n<h2>Kangaroo v0.18.1.200406<\/h2>\n<ol>\n<li>encrypt user password to keep user passwords safe.<\/li>\n<li>Implement insert, clone and delete functionality in the datagrid.<\/li>\n<li>Implement connection clone functionality in the start view<\/li>\n<li>Implement dump sql functionality on the dbtree<\/li>\n<li>Implement table schema editor on the dbtree<\/li>\n<li>Implement refresh functionality on the dbtree<\/li>\n<li>Improve workspace tab behavior(auto hide for one)<\/li>\n<li>fixed: return key behavior invalid on the dbtree<\/li>\n<li>fixed: crashed while open table with null value<\/li>\n<\/ol>\n<h2>Kangaroo v0.17.0.200323<\/h2>\n<ol>\n<li>Support connection over SSH tunnel (Windows, Linux\/Unix and MacOS)<\/li>\n<li>Add testing support for connection dialog<\/li>\n<li>Refactor context menu of datagrid<\/li>\n<li>Add dump sql (file and text) menu for dbtree<\/li>\n<li>Implement selection menu of datagrid<\/li>\n<li>Implement goto cell menu of datagrid<\/li>\n<li>Fixed: crashed while switching grid to form.<\/li>\n<\/ol>\n<h2>Kangaroo v0.16.0.200316<\/h2>\n<ol>\n<li>Support SSH tunnel(Windows not yet pass test).<\/li>\n<li>Support input page number to switch page<\/li>\n<li>Improve: update layout of switch widget on dialog<\/li>\n<li>Fixed: can&#8217;t open link on windows<\/li>\n<li>Fixed: log file index error<\/li>\n<\/ol>\n<h2>Kangaroo v0.15.0.200302<\/h2>\n<ol>\n<li>Update and share openssl.vapi to keep user data safe.<\/li>\n<li>Improve language support(kangaroo.pot, zh_Hans and zh_Hant)<\/li>\n<li>Improve home view&#8217;s web resource load performance<\/li>\n<li>Apply proxy setting for loading web resource<\/li>\n<li>Linux: change browser view to timeline text view<\/li>\n<li>Use combobox widget instead entry for log file size<\/li>\n<\/ol>\n<h2>Kangaroo v0.14.0.200217<\/h2>\n<ol>\n<li>SQLite: support to create new database<\/li>\n<li>refactor database tree context menu<\/li>\n<li>integrated with openssl to keep user&#8217;s password safe<\/li>\n<li>add pointer cursor for right panel icon<\/li>\n<li>fixed: update workbench default size while first run<\/li>\n<\/ol>\n<h2>Kangaroo v0.13.0.200210<\/h2>\n<ol>\n<li>apply data grid style setting<\/li>\n<li>apply sql editor style setting<\/li>\n<li>windows 32bit version support<\/li>\n<li>implement SSH tunnel support(not yet integrate)<\/li>\n<li>minor change for connection dialog UI<\/li>\n<li>fixed: tool&#8217;s icon incorrect on release version<\/li>\n<\/ol>\n<h2>Kangaroo v0.12.1.200120<\/h2>\n<ol>\n<li>add setting dialog<\/li>\n<li>add dark theme support<\/li>\n<li>bind connection dialog with new setting model<\/li>\n<li>update start view with new setting model<\/li>\n<\/ol>\n<h2>Kangaroo v0.11.1.200113<\/h2>\n<ol>\n<li>redesign connection dialog to support SSH and SSL<\/li>\n<li>add donate icon on home page(Paypal\/Wechat\/Alipay)<\/li>\n<li>redesign configuration model and file(init &#8211;&gt; json)<\/li>\n<li>Use symbolic icons in the Header Bar(#25)<\/li>\n<li>fixed: edit data in grid will update all rows<\/li>\n<\/ol>\n<h2>Kangaroo v0.11.0.200106<\/h2>\n<ol>\n<li>add app home page<\/li>\n<li>reimplement DSV format engine<\/li>\n<li>improve DSV compatible with other tools.<\/li>\n<li>improve DSV option UI layout<\/li>\n<li>improve date column editting support<\/li>\n<li>fixed: generate sql statement incorrect.<\/li>\n<li>fixed: crash while importing data<\/li>\n<li>fixed: can&#8217;t save data while editting on data grid<\/li>\n<li>fixed: warning message about db tree<\/li>\n<\/ol>\n<h2>Kangaroo v0.10.0.191223<\/h2>\n<ol>\n<li>add export assistant UI<\/li>\n<li>batch export table to file.<\/li>\n<li>support data formats(DSV\/JSON\/XML\/HTML\/Markdown\/SQL)<\/li>\n<li>support title for column(rename)<\/li>\n<\/ol>\n<h2>Kangaroo v0.9.5.191216<\/h2>\n<ol>\n<li>import data from DSV format<\/li>\n<li>import data from JSON format<\/li>\n<li>import data from XML format<\/li>\n<li>Rewritten export data as XML format with libxml2;<\/li>\n<li>add export modules assistant UI<\/li>\n<li>implement export format and table selection page<\/li>\n<\/ol>\n<h2>Kangaroo v0.9.4.191209<\/h2>\n<ol>\n<li>add import summary page<\/li>\n<li>add five kinds of import mode<\/li>\n<li>import csv format data to table<\/li>\n<li>fixed logo can&#8217;t show on linux and macos platform<\/li>\n<\/ol>\n<h2>Kangaroo v0.9.3.191202<\/h2>\n<ol>\n<li>implement column mapping function<\/li>\n<\/ol>\n<h2>Kangaroo v0.9.2.191125<\/h2>\n<ol>\n<li>Import data from file(dsv\/xml\/json) #19\n<ul>\n<li>implement the import UI(format, encoding and preview)<\/li>\n<li>implement the import UI(DSV format option)<\/li>\n<li>implement the import UI(data preview)<\/li>\n<li>implement the import UI(column mapping)<\/li>\n<li>implement the import UI(process progress)<\/li>\n<li>implement DSV format parse and preview<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Kangaroo v0.9.1.191118<\/h2>\n<ol>\n<li>Export data to file(dsv(csv\/tsv\/&#8230;)\/xml\/json\/sql\/md\/html) #18\n<ul>\n<li>Export data to DSV format(CSV\/TSV\/&#8230;)<\/li>\n<li>Export data to JSON format<\/li>\n<li>Export data to XML format<\/li>\n<li>Export data to HTML format<\/li>\n<li>Export data to SQL format(INSERT)<\/li>\n<li>Export data to Markdown format<\/li>\n<\/ul>\n<\/li>\n<li>Improve file filter of save dialog<\/li>\n<\/ol>\n<h2>Kangaroo v0.9.0.191111<\/h2>\n<ol>\n<li>Edit table schema and save to database #5<\/li>\n<li>Export data to JSON and DSV format<\/li>\n<\/ol>\n<h2>Kangaroo v0.8.5.191104<\/h2>\n<ol>\n<li>Edit table schema and save to database(SQLite and PostgreSQL preview) #5<\/li>\n<li>Add export data formats UI and interfaces<\/li>\n<li>Update tab&#8217;s title while save the new table<\/li>\n<\/ol>\n<h2>Kangaroo v0.8.4.191028<\/h2>\n<ol>\n<li>Rearrange db tree and UI #17<\/li>\n<li>Add refresh menu on db tree<\/li>\n<li>Implement multiple databases support<\/li>\n<li>Edit table schema and save to database(MySQL Preview) #5<\/li>\n<\/ol>\n<h2>Kangaroo v0.8.3.191021<\/h2>\n<ol>\n<li>\u65b0\u5efa\u8fde\u63a5\u65f6\u51fa\u73b0\u63d2\u4ef6\u672a\u52a0\u8f7d\u9519\u8bef #12 <br \/> Load plugin failed while create new connection #12<\/li>\n<li>Add MacOS compilation support #13<\/li>\n<li>refactor database model to improve interoperability<\/li>\n<\/ol>\n<h2>Kangaroo v0.8.2.191014<\/h2>\n<ol>\n<li>improve: field selection dialog support to select fields by value(#9)<\/li>\n<li>improve: schema designer support to navigate with Tab key(#3)<\/li>\n<li>fixed: fields expression dialog reload value failed(#10)<\/li>\n<li>fixed: missing windows shortcut icon(start menu and desktop) (#7)<\/li>\n<li>fixed: missing syntax highlighting support(#8)<\/li>\n<li>fixed: load data in form view failed(#11)<\/li>\n<\/ol>\n<h2>Kangaroo v0.8.1.190930<\/h2>\n<ol>\n<li>improve: generate exact correct editing sql<\/li>\n<li>refactor: add source code editor module<\/li>\n<li>improve SQLite schema sql builder<\/li>\n<li>fixed: text editor and code editor can&#8217;t show blank line<\/li>\n<li>fixed: get string failed while create data row(console)<\/li>\n<li>fixed: console critical message while editing schema<\/li>\n<\/ol>\n<h2>Kangaroo v0.8.0.190923<\/h2>\n<ol>\n<li>implement the builder of PostgreSQL(11.0)<\/li>\n<li>save table schema to database(create only)<\/li>\n<li>update build script: hide app console window<\/li>\n<li>update windows installer: add MySQL and PostgreSQL client library<\/li>\n<li>update the links on the about window<\/li>\n<li>improve single line edit control(auto focus)<\/li>\n<li>update gui cursor while busy<\/li>\n<\/ol>\n<h2>Kangaroo v0.7.2.190916<\/h2>\n<ol>\n<li>Implement loader of PostgreSQL 11(full version)<\/li>\n<li>Improve designer form of PostgreSQL 11<\/li>\n<li>refactor content of Kangaroo repo<\/li>\n<li>create new site: dbkangaroo.github.io<\/li>\n<li>add windows installer script<\/li>\n<\/ol><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>10<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li data-pid=\"1203603\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : andytao <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u7a33\u5b9a\u7248 0.20.1 \u5373\u5c06\u63a8\u51fa\u3002\u3002\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203604\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : MinQ <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u6709\u8ddf DBeaver \u7684\u5bf9\u6bd4\u5417\uff1f                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203605\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : andytao <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @MinQ \u6682\u672a\u505a\u7ec6\u81f4\u7684\u7279\u6027\u5bf9\u6bd4\uff0c\u6b22\u8fce\u5c1d\u8bd5                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203606\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : smallgoogle <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u5176\u5b9e\u6211\u6bd4\u8f83\u5173\u6ce8\u754c\u9762\u6709\u591a\u597d\u770b\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203607\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : kukat <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u514d\u8d39\u4f46\u4e0d\u5f00\u6e90\u7684\u4ea7\u54c1\u4e0d\u592a\u6562\u7528                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203608\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : jry <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u652f\u6301\uff0c\u5efa\u8bae\u5b66\u4e60\u4e0b TablePlus \u7684\u7406\u5ff5\uff0c\u4fee\u6539\u53ea\u662f\u6682\u5b58\uff0cCTRL+S \u4fdd\u5b58\u65f6\u7edf\u4e00\u518d\u6267\u884c Sql \u592a\u597d\u7528\u4e86\u3002                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203609\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : justin2018 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u989c\u503c\u4e0d\u9ad8                                                             <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203610\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : jin7 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u770b\u754c\u9762\u50cf gtk \u679c\u7136\u662f                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203611\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : andytao <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @jry \u8c22\u8c22\u60a8\u63d0\u51fa\u7684\u5efa\u8bae\uff0c\u6211\u7814\u7a76\u4e00\u4e0b\u54c8                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"1203612\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : andytao <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u888b\u9f20\u6570\u636e\u5e93\u7ba1\u7406\u5de5\u5177\uff08 DBKangaroo \uff09 0.20.1 \u5df2\u53d1\u5e03\uff0c\u66f4\u597d\u7528\u7684\u8868\u8bbe\u8ba1\u5668\u5df2\u4e0a\u7ebf\uff1b                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>\u6570\u636e\u5e93\u5ba2\u6237\u7aef\u65b0\u9009\u62e9\uff1a DBKang&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/94312"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=94312"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/94312\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=94312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=94312"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=94312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}