每个站点都附带一个数据库。您可以通过特定于站点的脚本对其进行自定义,或者在其上安装应用。
创建新站点
要创建新站点,请在 frappe-bench 目录下运行以下命令:
$ bench new-site library.localhost
MySQL root password:
Installing frappe...
Updating DocTypes for frappe : [========================================] 100%
Set Administrator password:
*** Scheduler is disabled ***
Current Site set to library.localhost
此命令将创建一个新数据库,因此您需要输入 MariaDB 的 root 密码。它还会要求您为管理员用户设置密码,请设置一个您不会忘记的密码。这将在以后派上用场。
现在,您将在 sites 目录下拥有一个名为 library.localhost 的新文件夹。
如果站点创建因任何原因失败,系统会提示您回滚更改。这将删除您站点目录中的 library.localhost 或等效文件,并删除已创建的数据库/用户。这样您就可以轻松重试,而无需手动清理不可用的站点。
站点目录结构
站点目录结构大致如下:
sites/library.localhost
├── indexes
│ └── web_routes
├── locks
├── logs
├── private
│ ├── backups
│ └── files
├── public
│ └── files
└── site_config.json
indexes 文件夹包含通过网站搜索生成的索引。
locks 文件夹维护站点内文档的基于文件的锁,以及站点自身状态的指示器。
如您所见,private 文件夹将包含所有数据库备份和私有文件。私有文件是需要身份验证才能访问的用户上传文件。
public 文件夹将包含无需身份验证即可访问的文件。其中可以包含无需登录即可访问的网站图片。
site_config.json 文件包含特定于此站点且不应进行版本控制的配置。这类似于环境变量文件。如果您查看该文件的内容,会发现其中包含此站点的数据库配置值。
{
"db_name": "_ad03fa1a016ca1c4",
"db_password": "pz1d2gN5y35ydRO5",
"db_type": "mariadb"
}
在浏览器中访问站点
bench 允许您创建多个站点,并在浏览器中通过同一端口分别访问它们。这就是我们在 bench 中所说的多租户支持。
Frappe 将通过将请求的主机名与站点名称进行匹配来确定要提供哪个站点,因此您应该能够通过 http://library.localhost:8000 访问您的站点。
如果您的站点名称不以 .localhost 结尾,则此方法无法直接为您工作,因为您必须告诉操作系统 site_name 应指向 localhost。为此,您可以将以下条目添加到您的 /etc/hosts 文件中。
127.0.0.1 site_name
这会将 library.localhost 映射到 localhost。Bench 有一个便捷命令可以完成此操作。
$ bench --site site_name add-to-hosts
这将要求您输入 root 密码,并向您的 /etc/hosts 文件添加一个条目。
太棒了,现在您可以在 http://library.localhost:8000 访问您的站点。恭喜您走到了这一步。
在站点上安装应用
要在我们的站点上安装我们的图书馆管理应用,请运行以下命令:
$ bench --site library.localhost install-app library_management
Installing library_management...
要确认应用是否已安装,请运行以下命令:
$ bench --site library.localhost list-apps
frappe
library_management
您应该会看到 frappe 和 library_management 已作为已安装的应用出现在您的站点上。
当您创建新站点时,frappe 应用会默认安装。
登录 Desk
在继续以下操作之前,请确保站点处于开发者模式。为确保这一点,请在您的站点中运行以下命令
bench set-config -g developer_mode 1
然后使用 bench start 命令重启 bench
要在我们的应用中创建 DocType,我们必须登录 Desk。转到 http://library.localhost:8000,它应该会向您显示一个登录页面。
输入 Administrator 作为用户,并输入您在创建站点时设置的密码。
成功登录后,您将看到设置向导。这是一次性的设置向导,用于为您的站点设置本地化详细信息。请继续,选择您的语言,并完成向导。
干得好,您已经走到了这一步!
您应该会看到类似这样的 Desk:
站点命令
我们使用 --site 选项运行了几个 bench 命令。这些命令被称为站点命令。
以下是一些有用的站点命令。
Python 控制台
# access the python console
$ bench --site library.localhost console
Apps in this namespace:
frappe, library_management
In [1]:
MariaDB 控制台
# access the mariadb console
$ bench --site library.localhost mariadb
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2333498
Server version: 10.4.13-MariaDB Homebrew
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [_ad03fa1a016ca1c4]>
数据库备份
$ bench --site library.localhost backup
Backup Summary for library.localhost at 2020-10-06 23:21:17.277960
Config : ./library.localhost/private/backups/20201006_232116-library_test-site_config_backup.json 94.0B
Database: ./library.localhost/private/backups/20201006_232116-library_test-database.sql.gz 217.4KiB
Backup for Site library.localhost has been successfully completed
您可以通过运行以下命令查看所有站点命令的列表:
$ bench --help
Usage: bench frappe [OPTIONS] COMMAND [ARGS]...
Options:
--site TEXT
--profile Profile
--verbose Verbose
--force Force
--help Show this message and exit.
Commands:
add-system-manager Add a new system manager to a site
add-to-email-queue Add an email to the Email Queue
add-to-hosts Add site to hosts
backup Backup
browse Opens the site on web browser
build Minify + concatenate JS and CSS files, build...
build-message-files Build message files for translation
build-search-index
bulk-rename Rename multiple records via CSV file
clear-cache Clear cache, doctype cache and defaults
clear-website-cache Clear website cache
console Start ipython console for a site
data-import Import documents in bulk from CSV or XLSX...
destroy-all-sessions Clear sessions of all users (logs them out)
下一步:创建 DocType