Thomas Sibley
ae4593316c
Add insert --truncate option
...
Deletes all rows in the table (if it exists) before inserting new rows.
SQLite doesn't implement a TRUNCATE TABLE statement but does optimize an
unqualified DELETE FROM.
This can be handy if you want to refresh the entire contents of a table
but a) don't have a PK (so can't use --replace), b) don't want the table
to disappear (even briefly) for other connections, and c) have to handle
records that used to exist being deleted.
Ideally the replacement of rows would appear instantaneous to other
connections by putting the DELETE + INSERT in a transaction, but this is
very difficult without breaking other code as the current transaction
handling is inconsistent and non-systematic. There exists the
possibility for the DELETE to succeed but the INSERT to fail, leaving an
empty table. This is not much worse, however, than the current
possibility of one chunked INSERT succeeding and being committed while
the next chunked INSERT fails, leaving a partially complete operation.
2020-07-08 10:26:20 -07:00
Simon Willison
4d9a320436
Release 2.10
...
Refs #115
2020-06-12 10:43:45 -07:00
Simon Willison
03ee97d225
CLI now supports upsert/insert - closes #115
2020-06-12 10:40:53 -07:00
Simon Willison
4e9cb739c7
drop-table and drop-view commands, closes #111
2020-05-10 17:44:21 -07:00
Simon Willison
d16097231c
Added sqlite-utils create-view command, closes #107
2020-05-03 08:36:29 -07:00
Simon Willison
9f6085b4e4
create-table --ignore and --replace, refs #27
2020-05-03 08:24:39 -07:00
Simon Willison
4d5916075d
create-table --not-null, --default, --fk, refs #27
2020-05-03 08:09:00 -07:00
Simon Willison
99a7906fd9
sqlite-utils create-table docs, plus doc unit test
...
Refs #27 . Closes #108
2020-05-02 21:13:49 -07:00
Simon Willison
b4d953d3cc
Release 2.7.1, refs #102 #104 #105
2020-05-01 15:08:37 -07:00
Simon Willison
344e9573ca
Added sqlite-utils views command, closes #105
2020-05-01 13:38:28 -07:00
Simon Willison
147b52622d
sqlite-utils tables ... --schema option, closes #104
2020-05-01 10:12:16 -07:00
Simon Willison
6161ebf4de
Fixed incorrect usage example
2020-04-12 11:44:08 -07:00
Simon Willison
f9473ace14
disable-fts and .disable_fts(), closes #88
2020-02-26 20:40:35 -08:00
Simon Willison
1f3f902ea4
Typo
2019-12-30 05:01:36 -08:00
Simon Willison
9f47e8b9a4
Documentation for new upsert v.s insert-replace
...
Refs #66
2019-12-30 05:29:23 +00:00
Simon Willison
607a2a9ff6
insert --replace and insert(..., replace=True)
...
Refs #66
2019-12-30 05:29:23 +00:00
Simon Willison
eb39c84a8f
Test and docs for using :memory: as a filename
2019-10-04 09:17:27 -07:00
Simon Willison
3a4dddaca2
Documentation for create-triggers, refs #57
2019-09-02 17:10:26 -07:00
Simon Willison
09316835e6
Implemented --tsv option, closes #41
2019-07-18 21:50:38 -07:00
Simon Willison
c65b67ca46
.get() method plus support for compound primary keys ( #40 )
...
* create_table now handles compound primary keys
* CLI now accepts multiple --pk for compound primary keys
* Docs for compound primary keys with CLI and Python library
* New .get() method plus documentation
Closes #36 , closes #39
2019-07-14 21:28:51 -07:00
Simon Willison
e8f887ef4a
sqlite-utils index-foreign-keys / db.index_foreign_keys()
...
Closes #33
2019-06-30 16:50:54 -07:00
Simon Willison
208f56fbaf
--not-null and --default options to insert/update, closes #24
2019-06-12 23:30:16 -07:00
Simon Willison
d645032cfa
add_foreign_key can now detect table and pk, refs #25
2019-06-12 21:51:09 -07:00
Simon Willison
2fed87da6e
--not-null-default and not_null_default=, refs #24
2019-06-12 18:35:02 -07:00
Simon Willison
26b2cf3418
Changelog for 1.1 + docs for --ignore/ignore=True
2019-05-28 22:06:22 -07:00
Simon Willison
50e2f94b58
Ability to add a column that is a foreign key reference
...
Python API:
db["dogs"].add_column("species_id", fk="species")
# or
db["dogs"].add_column("species_id", fk="species", fk_col="ref")
CLI:
$ sqlite-utils add-column mydb.db dogs species_id --fk species
# or
$ sqlite-utils add-column mydb.db dogs species_id --fk species --fk-col ref
Closes #16
2019-05-28 21:54:43 -07:00
Simon Willison
251e473041
--json-cols option for outputting nested JSON, closes #20
2019-05-24 17:56:44 -07:00
Simon Willison
eff52023c6
alter=True/--alter option to automatically add missing columns
...
Closes #18
2019-05-24 17:41:04 -07:00
Simon Willison
3cab079d3e
add-column col_type now optional, defaults to str
2019-02-24 14:24:00 -08:00
Simon Willison
f8d3b7cfe5
sqlite-utils add-foreign-key books.db books author_id authors id
...
Command for adding foreign keys to existing tables. Closes #2
2019-02-24 13:33:45 -08:00
Simon Willison
0bc49e938e
'sqlite-utils add-column name type' command, closes #15
2019-02-24 12:04:33 -08:00
Simon Willison
8a5d0d80c3
sqlite-utils create-index command, closes #14
2019-02-24 11:11:21 -08:00
Simon Willison
1b6025e8ab
Release 0.13
2019-02-23 22:54:43 -08:00
Simon Willison
6c3f5e6479
Added --table and --fmt options for table output using tabulate
2019-02-23 22:45:17 -08:00
Simon Willison
1ffa40301d
Releasing 0.12
2019-02-22 18:22:28 -08:00
Simon Willison
e3c0ed1b1a
sqlite-utils tables now takes --counts, --columns, --csv, --nl
2019-02-22 18:12:53 -08:00
Simon Willison
c7dbb03a10
Added 'sqlite-utils rows db.db tablename' command
2019-02-22 17:52:17 -08:00
Simon Willison
f2ca48c0da
Default command now executes queries, --csv or --json
...
I replaced the following commands:
sqlite-utils json db.db "select * from table"
sqlite-utils csv db.db "select * from table"
With a unified 'query' command, which is now set as the default:
sqlite-utils db.db "select * from table"
sqlite-utils db.db "select * from table" --csv
2019-02-22 17:40:21 -08:00
Simon Willison
c89b2df918
Fixed documentation typo
2019-02-07 21:23:50 -08:00
Simon Willison
6acfd456b0
Releasing 0.11
2019-02-07 21:22:13 -08:00
Simon Willison
3f8ef35b2a
enable-fts and populate-fts CLI commands
2019-02-07 21:18:24 -08:00
Simon Willison
225cf7299f
Docs example chaining --nl together
2019-01-27 18:28:02 -08:00
Simon Willison
a226076994
Fixed RST bug
2019-01-27 18:18:55 -08:00
Simon Willison
5309c5c775
sqlite-utils insert ... --nl option, closes #6
2019-01-27 18:17:38 -08:00
Simon Willison
3db4f08f19
Release 0.8
2019-01-25 18:13:29 -08:00
Simon Willison
5466c9745d
sqlite-utils json dogs.db "select * from dogs"
2019-01-25 18:06:29 -08:00
Simon Willison
7689ca7229
Fixed RST formatting
2019-01-25 10:16:26 -08:00
Simon Willison
c83dd8a5eb
sqlite-utils csv data.db "select ..." command
2019-01-25 07:50:20 -08:00
Simon Willison
9501ba4bf1
sqlite-utils table_names blah.db is now tables blah.db
...
Travis tests were failing because on OS X the command was this:
sqlite-utils table_names blah.db
But in Travis CI the command was this:
sqlite-utils table-names blah.db
Renaming it to tables fixes this inconsistency.
2019-01-24 23:04:52 -08:00
Simon Willison
e9e1cb00c1
Release notes for 0.7
2019-01-24 22:39:21 -08:00