Jump to content

Kexi/Tutorials/Importing SQLite database into Kexi: Difference between revisions

From KDE Wiki Sandbox
Kpi (talk | contribs)
No edit summary
Tag: Reverted
Jstaniek (talk | contribs)
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
Unban KEMONO_PANTSU now. She has gotten her 286 accounts on 114 platforms banned for no valid reason. Account list: https://controlc.com/afd584e3
<languages />
<translate>


She has also been listed on the lists below for no valid reason.
[[Special:myLanguage/Kexi/Tutorials|&larr; Back to Tutorials]]
```
metasmoke - #kemono-pantsu-spam-wave: https://metasmoke.erwaysoftware.com/domains/tags/4291?page=6&what=posts
Wikipedia - 進行中の荒らし行為: https://ja.wikipedia.org/wiki/WP:VIP#KEMONO_PANTSU
```


Number of accounts banned on each website
 
```
<!--T:1-->
Phorge: 32
{{Note|This tutorial works with Kexi 2.x or newer. Author [[User:Jstaniek|Jarosław Staniek]] ([[User talk:Jstaniek|talk]]). }}
Wikimedia Foundation - Global lock: 24
 
Japanese Wikipedia: 13
<!--T:2-->
Stack Exchange - Network-wide: 13
It has been written as for supporting this help request  on the [http://forum.kde.org/viewtopic.php?f=221&t=118997 Kexi forum]. Any comments are welcome in that thread.
Wikimedia Phabricator: 11
 
teratail: 11
<!--T:30-->
MediaWiki: 9
Note: There is alternative approach: https://forum.kde.org/viewtopic.php?f=220&t=139243
Portal Unofficial Wiki: 7
 
Meta Stack Exchange: 6
==Introduction== <!--T:3-->
Meta-Wiki: 6
 
Stack Overflow: 5
<!--T:4-->
Gaia Online: 4
This tutorial shows how to take an input file ''oaklandweather.sdb'' which is a native standard SQLite3 file containing one table with data and create database project that can be used with Kexi.
Japanese Wikivoyage: 4
 
Mathematics Stack Exchange: 4
<!--T:5-->
Wikipedia: 4
The input SQLite3 file is available [http://kexi-project.org/download/tests/oaklandweather-2013-12-31.sdb.xz here] (compressed to 600KB using xz, contains publicly available data).
Japanese Wiktionary: 3
 
Medium: 3
==Steps== <!--T:6-->
Physics Stack Exchange: 3
 
Science Fiction & Fantasy Stack Exchange: 3
<!--T:7-->
Tripadvisor: 3
1. In [[Special:myLanguage/Konsole|Konsole]] terminal you can use ''sqlite3'' console app to show schema (''Sqliteman'' GUI app would not show the schema):
Wikitech: 3
 
Wikitravel: 3
<!--T:8-->
Wiktionary: 3
sqlite3 oaklandweather.sdb
Worldbuilding Stack Exchange: 3
 
Academia Stack Exchange: 2
<!--T:9-->
Armor Games: 2
2. Then you can type:
Drupal Answers: 2
 
Italian Wikipedia: 2
<!--T:10-->
Kongregate: 2
.schema
Qiita: 2
 
Stack Exchange Chat: 2
<!--T:11-->
Unix & Linux Stack Exchange: 2
3. This shows you schema for one table ''archive'':
Warframe Forums: 2
 
Wikibooks: 2
</translate>
Wikidata: 2
CREATE TABLE archive (
Wikimedia Incubator: 2
    dateTime INTEGER NOT NULL UNIQUE PRIMARY KEY,
Wikispecies: 2
    usUnits INTEGER NOT NULL,
Wikiversity: 2
    interval INTEGER NOT NULL,
Wikivoyage: 2
    barometer REAL,
教えて!goo: 2
    pressure REAL,
3D Printing Stack Exchange: 1
    altimeter REAL,
Amateur Radio Stack Exchange: 1
    inTemp REAL,
Amino: 1
    outTemp REAL,
Android Enthusiasts Stack Exchange: 1
    inHumidity REAL,
Anime & Manga Stack Exchange: 1
    outHumidity REAL,
Anime UK News Forums: 1
    windSpeed REAL,
AnimeBase: 1
    windDir REAL,
Appropedia: 1
    windGust REAL,
Arabic Wikipedia: 1
    windGustDir REAL,
Arqade - Stack Exchange: 1
    rainRate REAL,
Artificial Intelligence Stack Exchange: 1
    rain REAL,
Ask Different - Stack Exchange: 1
    dewpoint REAL,
Ask Ubuntu: 1
    windchill REAL,
Astronomy Stack Exchange: 1
    heatindex REAL,
Aviation Stack Exchange: 1
    ET REAL,
Bioinformatics Stack Exchange: 1
    radiation REAL,
Bitcoin Stack Exchange: 1
    UV REAL,
Cebuano Wikipedia: 1
    extraTemp1 REAL,
Chess Stack Exchange: 1
    extraTemp2 REAL,
Code Golf Stack Exchange: 1
    extraTemp3 REAL,
Code Review Stack Exchange: 1
    soilTemp1 REAL,
Combine OverWiki: 1
    soilTemp2 REAL,
Cross Validated - Stack Exchange: 1
    soilTemp3 REAL,
Dutch Wikipedia: 1
    soilTemp4 REAL,
Egyptian Arabic Wikipedia: 1
    leafTemp1 REAL,
Electrical Engineering Stack Exchange: 1
    leafTemp2 REAL,
Enpedia: 1
    extraHumid1 REAL,
Fake Japanese Wikipedia - jaatd63804.rakkoserver.net: 1
    extraHumid2 REAL,
Fanlore: 1
    soilMoist1 REAL,
French Wikipedia: 1
    soilMoist2 REAL,
GameFAQs: 1
    soilMoist3 REAL,
GameSpot: 1
    soilMoist4 REAL,
German Wikipedia: 1
    leafWet1 REAL,
German Wikivoyage: 1
    leafWet2 REAL,
Giant Bomb: 1
    rxCheckPercent REAL,
Information Security Stack Exchange: 1
    txBatteryStatus REAL,
Japanese Language Stack Exchange: 1
    consBatteryVoltage REAL,
Japanese Wikiquote: 1
    hail REAL,
Japanese Wikitravel: 1
    hailRate REAL,
Korean Wikipedia: 1
    heatingTemp REAL,
LocalWiki: 1
    heatingVoltage REAL,
Magento Stack Exchange: 1
    supplyVoltage REAL,
Mathematica Stack Exchange: 1
    referenceVoltage REAL,
Meta Stack Overflow: 1
    windBatteryStatus REAL,
Minecraft Wiki - Fandom: 1
    rainBatteryStatus REAL,
Music: Practice & Theory Stack Exchange: 1
    outTempBatteryStatus REAL,
MyAnimeList: 1
    inTempBatteryStatus REAL
OpenStreetMap: 1
);
OpenStreetMap Wiki: 1
<translate>
Photography Stack Exchange: 1
 
Pokémon Wiki - Fandom: 1
<!--T:12-->
Polish Wikipedia: 1
4. This table needs to be manually re-created using Kexi to make it match the original table as much as possible. Unfortunately -- because this is a big table.
Radiopaedia: 1
 
Reddit: 1
<!--T:13-->
Salesforce Stack Exchange: 1
To do so, you can create a new blank database file project using the Kexi app. Give it a name such as ''oaklandweather'' so Kexi will pick a name ''oaklandweather.kexi''. Do not close the Kexi project.
Server Fault: 1
 
Spanish Wikipedia: 1
<!--T:14-->
Super User: 1
5. In the ''oaklandweather.kexi'' project, start designing a new table.
Swedish Wikipedia: 1
 
TV Tropes: 1
<!--T:15-->
Test Wikidata: 1
*Type a name for every column presented by the schema in the step 3.
Test Wikipedia: 1
*Use the Property Editor on the right hand to give each column in this table proper data type.
Test2 Wikipedia: 1
**For INTEGER types, eg. ''dateTime INTEGER'' as seen on the schema, select Integer Number in the Data Type column of the Table Designer.
Wikimania: 1
**For REAL types, eg. ''barometer REAL'' as seen on the schema, select Floating Point Number in the Data Type column of the Table Designer.
Wikimedia API Portal: 1
*In addition, set the ''dateTime'' column as the primary key for the table in the Property Editor.
Wikimedia Commons: 1
*Also, ''usUnits'' and ''interval'' columns have NOT NULL specifier assigned. To do the same in Kexi, set Required property to Yes for these columns in the Property Editor.
Wikimedia Foundation Governance Wiki: 1
 
Wikimedia Outreach: 1
 
Wikinews: 1
<!--T:16-->
Wikiquote: 1
{{Note|A hint: on Linux you can copy column names a bit faster by double clicking on the name in the table schema above, double clicking on a subsequent empty cell in the Field Caption column of the Table designer, and then pressing the middle mouse button to paste the previously made selection.}}
Wikisource: 1
 
Wikispore: 1
<!--T:17-->
Wikitravel Shared: 1
{{Note|It is possible to create the table in Kexi using text editor and a SQL command but it would be reserved for more advanced users. Given there is enough interest instructions can be published.}}
WordPress Development Stack Exchange: 1
 
```
<!--T:18-->
6. Save the table's design with the ''Archive'' caption. Physical table's name will be set by Kexi as ''archive'' what matches the table name in the ''oaklandweather.sdb'' file.
 
<!--T:19-->
Note that after saving the design you can again open it for designing. The only remark is that upon saving the altered table design you would loose any data in the table, if there is any, so it is better to make sure the table design is perfect before any data is inserted into the table.
 
<!--T:20-->
Make sure there are all the 52 columns have been inserted in the ''archive'' table design and that all are in correct order and have proper type. Any difference can make the resulting ''archive'' table inaccessible for Kexi.
 
<!--T:21-->
When you are done, close the Kexi app.
 
<!--T:22-->
The Kexi file without data is available [http://kexi-project.org/download/tests/oaklandweather-empty.kexi here] for reference.
 
<!--T:23-->
7. So far the ''oaklandweather.kexi'' file has no data in it. Now you may be ready to execute the final command to import the data. In the Konsole terminal enter to the directory where the ''oaklandweather.sdb'' and ''oaklandweather.kexi'' files exist or add proper paths to them. Then type (or paste) the command:
 
<!--T:24-->
sqlite3 oaklandweather.sdb .dump | egrep -e "^(BEGIN|INSERT|ANALYZE|COMMIT)" | sqlite3 oaklandweather.kexi
 
<!--T:25-->
This works as follows:
 
<!--T:26-->
*Reports the ''oaklandweather.kexi'' file to a so-called SQL dump (a text representation) using the sqlite3 console app.
*Removes from this dump any lines that do not begin with BEGIN, INSERT, ANALYZE or COMMIT. This is needed because we are only interested in data of the table, not in creating a new table.
*Directs the resulting output to a ''sqlite3'' console app again, which receives all the commands from the output and applies them to the ''oaklandweather.kexi'' database file. The last command applied is COMMIT.
 
 
<!--T:27-->
8. Done! You can open the ''oaklandweather.kexi'' database project file in Kexi and open the 'archive' table in it to see all the data.
 
 
<!--T:28-->
The resulting Kexi file is available [http://kexi-project.org/download/tests/oaklandweather.kexi.xz here] (compressed to 650KB using xz).
 
<!--T:29-->
[[Category:Office]]
[[Category:Tutorials]]
</translate>

Latest revision as of 01:23, 30 November 2024

← Back to Tutorials


Note

This tutorial works with Kexi 2.x or newer. Author Jarosław Staniek (talk).


It has been written as for supporting this help request on the Kexi forum. Any comments are welcome in that thread.

Note: There is alternative approach: https://forum.kde.org/viewtopic.php?f=220&t=139243

Introduction

This tutorial shows how to take an input file oaklandweather.sdb which is a native standard SQLite3 file containing one table with data and create database project that can be used with Kexi.

The input SQLite3 file is available here (compressed to 600KB using xz, contains publicly available data).

Steps

1. In Konsole terminal you can use sqlite3 console app to show schema (Sqliteman GUI app would not show the schema):

sqlite3 oaklandweather.sdb

2. Then you can type:

.schema

3. This shows you schema for one table archive:

CREATE TABLE archive (
   dateTime INTEGER NOT NULL UNIQUE PRIMARY KEY,
   usUnits INTEGER NOT NULL,
   interval INTEGER NOT NULL,
   barometer REAL,
   pressure REAL,
   altimeter REAL,
   inTemp REAL,
   outTemp REAL,
   inHumidity REAL,
   outHumidity REAL,
   windSpeed REAL,
   windDir REAL,
   windGust REAL,
   windGustDir REAL,
   rainRate REAL,
   rain REAL,
   dewpoint REAL,
   windchill REAL,
   heatindex REAL,
   ET REAL,
   radiation REAL,
   UV REAL,
   extraTemp1 REAL,
   extraTemp2 REAL,
   extraTemp3 REAL,
   soilTemp1 REAL,
   soilTemp2 REAL,
   soilTemp3 REAL,
   soilTemp4 REAL,
   leafTemp1 REAL,
   leafTemp2 REAL,
   extraHumid1 REAL,
   extraHumid2 REAL,
   soilMoist1 REAL,
   soilMoist2 REAL,
   soilMoist3 REAL,
   soilMoist4 REAL,
   leafWet1 REAL,
   leafWet2 REAL,
   rxCheckPercent REAL,
   txBatteryStatus REAL,
   consBatteryVoltage REAL,
   hail REAL,
   hailRate REAL,
   heatingTemp REAL,
   heatingVoltage REAL,
   supplyVoltage REAL,
   referenceVoltage REAL,
   windBatteryStatus REAL,
   rainBatteryStatus REAL,
   outTempBatteryStatus REAL,
   inTempBatteryStatus REAL
);

4. This table needs to be manually re-created using Kexi to make it match the original table as much as possible. Unfortunately -- because this is a big table.

To do so, you can create a new blank database file project using the Kexi app. Give it a name such as oaklandweather so Kexi will pick a name oaklandweather.kexi. Do not close the Kexi project.

5. In the oaklandweather.kexi project, start designing a new table.

  • Type a name for every column presented by the schema in the step 3.
  • Use the Property Editor on the right hand to give each column in this table proper data type.
    • For INTEGER types, eg. dateTime INTEGER as seen on the schema, select Integer Number in the Data Type column of the Table Designer.
    • For REAL types, eg. barometer REAL as seen on the schema, select Floating Point Number in the Data Type column of the Table Designer.
  • In addition, set the dateTime column as the primary key for the table in the Property Editor.
  • Also, usUnits and interval columns have NOT NULL specifier assigned. To do the same in Kexi, set Required property to Yes for these columns in the Property Editor.


Note

A hint: on Linux you can copy column names a bit faster by double clicking on the name in the table schema above, double clicking on a subsequent empty cell in the Field Caption column of the Table designer, and then pressing the middle mouse button to paste the previously made selection.


Note

It is possible to create the table in Kexi using text editor and a SQL command but it would be reserved for more advanced users. Given there is enough interest instructions can be published.


6. Save the table's design with the Archive caption. Physical table's name will be set by Kexi as archive what matches the table name in the oaklandweather.sdb file.

Note that after saving the design you can again open it for designing. The only remark is that upon saving the altered table design you would loose any data in the table, if there is any, so it is better to make sure the table design is perfect before any data is inserted into the table.

Make sure there are all the 52 columns have been inserted in the archive table design and that all are in correct order and have proper type. Any difference can make the resulting archive table inaccessible for Kexi.

When you are done, close the Kexi app.

The Kexi file without data is available here for reference.

7. So far the oaklandweather.kexi file has no data in it. Now you may be ready to execute the final command to import the data. In the Konsole terminal enter to the directory where the oaklandweather.sdb and oaklandweather.kexi files exist or add proper paths to them. Then type (or paste) the command:

sqlite3 oaklandweather.sdb .dump | egrep -e "^(BEGIN|INSERT|ANALYZE|COMMIT)" | sqlite3 oaklandweather.kexi

This works as follows:

  • Reports the oaklandweather.kexi file to a so-called SQL dump (a text representation) using the sqlite3 console app.
  • Removes from this dump any lines that do not begin with BEGIN, INSERT, ANALYZE or COMMIT. This is needed because we are only interested in data of the table, not in creating a new table.
  • Directs the resulting output to a sqlite3 console app again, which receives all the commands from the output and applies them to the oaklandweather.kexi database file. The last command applied is COMMIT.


8. Done! You can open the oaklandweather.kexi database project file in Kexi and open the 'archive' table in it to see all the data.


The resulting Kexi file is available here (compressed to 650KB using xz).