Fragmenta
Fragmenta 是一个用于创建、管理和部署 golang 网络应用的命令行工具。它自带一套库,使开发 web 应用程序更容易,并旨在允许管理应用程序,而不需要对它们使用的库或其内部结构做太多假设。它负责生成 CRUD 动作、处理认证、路由和渲染,让你专注于你的应用程序的独特部分。
使用 Fragmenta
- fragmenta版本 -> 显示版本
- fragmenta help -> 显示帮助
- fragmenta new [app|cms|blog|URL] path/to/app -> 从版本库中创建一个新的应用,路径为提供的URL。
- fragmenta -> 构建并运行一个fragmenta应用程序。
- fragmenta server -> 构建并运行一个fragmenta应用。
- fragmenta测试 -> 运行测试
- fragmenta backup [development|production|test] ->备份数据库到db/backup。
- fragmenta restore [development|production|test] -> 从db/backup中的最新文件备份数据库。
- fragmenta deploy [development|production|test] -> 使用 bin/deploy 进行构建和部署。
- fragmenta migrate -> 在db/migrate中运行新的sql迁移。
- fragmenta generate resource [name] [fieldname]:[fieldtype]* -> 创建资源的CRUD操作和视图。
- fragmenta generate migration [name] -> 在db/migrate中创建一个新的命名的sql migration。
应用结构
默认应用的布局结构如下:
- bin -> 服务器二进制文件,以及可选的部署脚本。
- db -> 数据库备份和迁移。
- public -> 公开服务的文件,包括资产、上传的文件等。
- secrets -> 配置文件,一般不在检查范围内。
- server.go -> 您的应用入口点(必填)。
- src -> 应用程序源文件 - 这个文件夹的结构由你决定
应用程序中的 pkg 布局由你决定 -- 我们提供了默认值,但不是强制性的。在 src中,默认的包是按资源排列的--生成器会生成一个新的资源,其结构如下。
- pages -> 资源名称
- actions -> 对该资源进行操作(处理CRUD等)。
- assets -> 本资源的js,css,图片。
- pages.go -> 资源模型文件
- pages_test.go -> 对这个模型进行测试。
- views -> 该资源的视图
库
以下独立包可用于 fragmenta 应用程序(或其他 go web 应用程序)。
- assets -- 一个带有资产指纹的资产流水线,可对资产进行精简和合并。
- auth -- 用于认证和授权的工具。
- fragmenta -- 一个用于生成和开发网站的命令行工具。
- model -- 用于在模型中可选包含的基模型类。
- file -- 一个用于处理文件上传的软件包
- validate -- 一个用于处理字段验证的包。
- query -- 一个针对 mysql、psql 和可选的 sql 的查询生成器和结果封装器。
- router -- 路由器,允许模式匹配、路由、重定向、过滤器,并提供一个处理接口。
- server -- 一个基于 http.listenandserve 的简单服务器。
- view -- 用于使用 html/template 渲染视图模板的库。
- helpers -- 表单字段、货币等的助手。
数据库设置
目前 fragmenta 假设使用 Postresql,虽然它可以使用其他数据库,但这是默认的。
如果您是第一次安装 postgresql,您会发现最简单的方法是为自己创建一个用户,无论是作为超级用户还是具有本地开发的特定权限,如下所示。
sudo su postgres createuser $USER psql ALTER USER $USER WITH SUPERUSER; ALTER USER $USER WITH CREATEROLE; ALTER USER $USER WITH CREATEDB;