M: i built a database in calibre to sort some non-book files, so it's a custom set of values. i started this earlier in a different database, with the appropriate field values but a different arrangement of fields - so, what was 'author' in the one already done has become a custom field. i'm trying to figure out if i can import the old database in a way that will allow, either directly or through an import followed by modification and copying, for me to rearrange the values so's i don't have to straight up enter all the info again. please go online and see what you can find for me in terms of getting this done.
G: Short version: yes, probably. The cleanest path is usually:
The important thing is that Calibre stores metadata in its DB independently from the actual files, so if you just re-add the files raw, you may lose the structured data unless you migrate intelligently. citeturn0search26turn0search5
A few workable approaches:
If the same files already exist in the old database:
Calibre has a built-in “clone library” feature which copies:
without copying the books themselves. citeturn0search26
This matters because custom columns are internally identified by lookup names like:
#media_type#archive_sourcenot just by visible column names.
If your new DB already exists:
This is probably what you actually want.
Example:
Author = creator#creatorCalibre can bulk copy metadata between columns using:
This is a known/common workflow. citeturn0search15turn0search18
Select all items:
ESearch & ReplaceThen:
authors#creatorThat effectively copies contents from:
authors → #creator
People use the same trick for:
If your schemas diverged heavily:
Possible via:
There are users doing this through CSV/plugin workflows specifically to avoid retyping metadata. citeturn0search9turn0search36
This becomes useful if:
Because Calibre stores everything in metadata.db
(SQLite), technically you can:
BUT:
Given your use case, the built-in metadata tools are probably safer and easier.
Custom columns are tied to internal lookup names.
Example:
Creator#creatorIf the new DB has:
Calibre treats them as different fields.
So before migration:
Preferences -> Add your own columnsThis is probably the single biggest thing that determines whether the migration becomes painless or miserable.
Given your description:
That avoids:
Useful references:
[Attachment reference unresolved: file-using]
M: in method number 2, it says 'You must specify a search expression in the "Search for" field'. i see what's being talked about, but i'm not sure how to accomplish the data transfer.
G: Yeah, Calibre’s UI for this is weirdly unintuitive because it calls it “Search & Replace” even when you’re really trying to do a field copy.
What you want is usually this:
(.*)\1That regex just means:
So for your example:
authors#creatorYou’d do:
| Setting | Value |
|---|---|
| Search field | authors |
| Mode | Regular expression |
| Search for | (.*) |
| Replace with | \1 |
| Destination field | #creator |
Then hit OK/apply.
A couple important notes:
authors is the internal field name for Author.#creator#media#source_archiveYou can see those in:
Preferences -> Add your own columns
Also:
Author1 & Author2
formatting, so if you had multiple authors, that separator may carry
over literally unless transformed later.One other extremely useful thing: before doing this to the whole database, test it on:
because Calibre bulk operations are very “yes I absolutely did exactly what you asked and now 8,000 records are weird.”