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:

  1. Clone/import the old library or add the same files into the new one.
  2. Create matching custom columns in the new DB.
  3. Use Calibre’s bulk Search & Replace metadata tools to copy values from standard fields (like Author) into your new custom columns.
  4. Then optionally clear or repurpose the original fields.

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. citeturn0search26turn0search5

A few workable approaches:


Method 1 — Probably the easiest: clone + remap fields

If the same files already exist in the old database:

Step A — Clone the old library structure

Calibre has a built-in “clone library” feature which copies:

without copying the books themselves. citeturn0search26

This matters because custom columns are internally identified by lookup names like:

not just by visible column names.

If your new DB already exists:


Method 2 — Bulk-copy one column into another

This is probably what you actually want.

Example:

Calibre can bulk copy metadata between columns using:

This is a known/common workflow. citeturn0search15turn0search18

Example procedure

Select all items:

Then:

That effectively copies contents from: authors → #creator

People use the same trick for:


Method 3 — Use Export/Import metadata (best for massive restructures)

If your schemas diverged heavily:

Possible via:

There are users doing this through CSV/plugin workflows specifically to avoid retyping metadata. citeturn0search9turn0search36

This becomes useful if:


Method 4 — Direct SQLite surgery (possible, but dangerous)

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.


One important gotcha

Custom columns are tied to internal lookup names.

Example:

If the new DB has:

Calibre treats them as different fields.

So before migration:

This is probably the single biggest thing that determines whether the migration becomes painless or miserable.


What I would personally do in your situation

Given your description:

Safest workflow

  1. Backup both libraries.
  2. Open old DB.
  3. Write down:
    • custom columns
    • lookup names
    • intended mapping.
  4. Modify the NEW DB so it temporarily mirrors the OLD structure.
  5. Use:
    • Add books from old library OR
    • Copy to library
  6. Once metadata is present:
    • bulk-copy fields into their new destinations.
  7. Delete obsolete columns afterward.

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:

That regex just means:

So for your example:

You’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:

You can see those in: Preferences -> Add your own columns

Also:

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.”