==Database files==This page is part of the [[Getting Started]] Section. It gives some insight into the configuration of BaseX.
A database in BaseX consists of several files, which are all bundled in a folder with the database name.<br />All of these files are stored in a <code>BaseXData</code> directory in your home directory. The path can be changed in the GUI via the Options/Preferences menu.==Configuration Files==
==Configuration BaseX maintains some configuration files==, which are stored in the project’s [[#Home Directory|Home Directory]]:
There * <code>.basex</code> contains all options that are two configuration files relevant for running the server or standalone versions of BaseX. These two configuration files * <code>.basexbasexgui</code> & defines all options relevant to the BaseX GUI.* <code>.basewinbasexhistory</code> are stored contains commands that have been typed in the same directorymost recently.* An empty <code>. This path cannot basexhome</code> file can be changed by the useradded to a directory to mark it as [[#Home Directory|home directory]].
==User and log files==The global users are stored in the <code>.basexperm</code> file in the same directory as the configuration files. Local users and permissions are stored in the meta data of the database, so they don't need an extra file. <br />All log files are stored in text format in the directory <code>BaseXData/.logs</code>.Note that:
* Depending on your OS and configuration, files and folders with a '.' prefix may be hidden.* In the [[CategoryWeb Application]] context, options can be defined in the <code>web.xml</code> file. ==Home Directory== As BaseX is distributed in different flavors, and as it may be started from different locations, it dynamically determines its home directory: * First, the '''Java system property''' {{Code|org.basex.path}} is checked. If it contains a value, it is chosen as directory path.* If not, the '''current user directory''' (defined by the system property {{Code|user.dir}}) is selected if the {{Code|.basex}} or {{Code|.basexhome}} file is found in this directory. * If not, the '''application directory''' (the folder in which BaseX is located) is chosen if one of these two files is found in that directory.* In all other cases, a {{Code|basex}} subdirectory in the '''user home directory''' will be returned. The user home directory is retrieved via the {{Code|HOME}} environment variable, or (if unassigned) the Java system property {{Code|user.home}}. If BaseX is used in an embedded environment (such as a servlet in a [[Web Application]]), it may not immediately be clear which directory was picked. You can run the XQuery expression <code>Q{java:org.basex.util.Prop}HOMEDIR()</code> to find out. ==Database Directory== [[Databases]] consists of several binary files. These are located in a directory named by the name of the database. The database root directory is named {{Code|data}}. The database path can be changed as follows:* GUI: Choose ''Options'' → ''Preferences'' and choose a new database path.* General: edit the {{Option|DBPATH}} option in the {{Code|.basex}} configuration file '''Note:''' Existing databases will not automatically be moved to the new destination. ==Log Files== Log files are stored in text format in a <code>.logs</code> subdirectory of the database folder (see [[Logging]] for more information). =Changelog= ;Version 9.0 * Updated: Detection and configuration of home directory and subdirectories. ;Version 8.0 * Updated: Internal{{Code|.basexperm}} is obsolete. Users are now stored in {{Code|users.xml}} in the database directory (see [[User Management]] for more information). ;Version 7.7 * Updated: The {{Code|.basexhome}} file marks a folder as [[#Home Directory|home directory]].