Fp5Dump allows you to parse, read and export FileMaker .fp5 and .fp3 files to postgres .psql files or
insert/update them to a local postgres database.
The Filemaker types TEXT, NUMBER, DATE, TIME will be mapped the corresponding postgres types
(numeric is used for NUMBER fields) unless the --assume-string option is specified.
FileMaker stores all values as strings and does not enforce a particular format for dates/numbers.
The --locale option can be used if the values for numbers/dates are in a locale specific format, e.g.:
--locale=de_DE will allow dates like 20.12.2014 and numbers like 123,456.
Repeated fields will be mapped to one dimentional arrays of a fixed size.
Supported field types are TEXT, NUMBER, DATE, TIME, CALC, SUMMARY. Fields of type
CALC or SUMMARY can only be dumped if they are configured to be stored in the file.
CONATINER fields are not (yet) supported.
- download or clone this repositiory
- open a terminal
- change to the directory of the repository
python3 setup.py install
fp5dump [general-options] {action} <file> [action-options]
general-options
-v show info messages
-vv show debug messages
action is one of list-fields count-records dump-blocks dump-records insert-records update-records
file a readable fp5/fp3 file
lists the fields in a filemaker file
fp5dump list-fields database.fp5
[--encoding <encoding>] [--show-unstored] [--include-fields-types <type>]
--include-fields-types <type>
type one or more of TEXT NUMBER DATE TIME CALC SUMMARY GLOBAL CONTAINER
by default all field types are included
--show-unstored
show fields (e.g. calculations, summaries and globals) who's values are not stored in the file
--encoding <encoding>
one of ascii cp1252 latin_1 macroman
the encoding to interpret strings values
shows the number of records in a fp5 file
fp5dump count-records database.fp5
dumps the data or index blocks of a fp5 file in their logical order
fp5dump dump-blocks database.fp5
[--output <filename>] [--type <data|index>] [--with-path <path>]
-o <filename> --output <filename>
the name of the file the blocks are dumped to
by default a file with the suffix data, index or <path>.data will be written in the same directory
--type
one of index data, default is data
dump either the index blocks of the fp5 file or the data blocks
--with-path <path>
only valid with --type data
dumps only data block containing nodes of a certain path. paths are written as hex-bytes separated by /.
e.g. '03', '03/02', '05/7E46/42'
dump the records of fp5 file to a psql file
fp5dump dump-records database.fp5
[--output <filename>] [--encoding <encoding>] [--progress]
[--include-fields <name>] [--include-fields-like <regex>]
[--ignore-fields <name>] [--ignore-fields-like <regex>]
[--ignore-field-types <type>]
-o <filename> --output <filename>
the name of the file the blocks are dumped to
by default a file with the suffix psql will be written in the same directory
--encoding <encoding>
encoding one of ascii cp1252 latin_1 macroman
the encoding to interpret strings values
-p --progress
shows the progress and estimated time to completion
--include-fields <name> and --include-fields-like <regex>
includes fields in the dump which are specified by name or which match one of the regex
if neither are specified all fields will be dumped
--ignore-fields <name> and --ignore-fields-like <regex>
excludes fields in the dump which are specified by name or which match one of the regex
exclusions overwrite inclusions
--ignore-field-types <type>
type one or more of TEXT NUMBER DATE TIME CALC SUMMARY GLOBAL CONTAINER
excludes fields of certain types
exclusions overwrite inclusions
inserts the records of fp5 file unto a postgres database
fp5dump insert-records database.fp5
[--pg <postgres-connection-string>] [--encoding <encoding>] [--progress]
[--include-fields <name>] [--include-fields-like <regex>]
[--ignore-fields <name>] [--ignore-fields-like <regex>]
[--ignore-field-types <type>]
**``--pg ** strings used to connect to postgres – should look like dbname='mydb' user='me' password='secret' host='localhost' port='5432'`
--encoding <encoding>
the encoding to interpret strings values
any valid python encoding can be chosen. defaults to "latin_1"
-p --progress
shows the progress and estimated time to completion
--include-fields <name> and --include-fields-like <regex>
includes fields in the dump which are specified by name or which match one of the regex
if neither are specified all fields will be dumped
--ignore-fields <name> and --ignore-fields-like <regex>
excludes fields in the dump which are specified by name or which match one of the regex
exclusions overwrite inclusions
--ignore-field-types <type>
type one or more of TEXT NUMBER DATE TIME CALC SUMMARY GLOBAL CONTAINER
excludes fields of certain types
exclusions overwrite inclusions