Crear y generar un nuevo proyecto
Utilizaremos el resultado del tutorial mencionado al principio como plantilla para crear nuestro nuevo proyecto:
vapor new projectName --template=vaporberlin/my-first-controller --branch=vapor-2
Antes de generar un proyecto en Xcode tendríamos que cambiar el nombre del paquete dentro de Package.swift:
// swift-tools-version:4.0import PackageDescriptionlet package = Package(
name: "projectName", // changed
products: ),
.executable(name: "Run", targets: )
],dependencies: ,targets: ,
exclude: ),.target(name: "Run", dependencies: ),
.testTarget(name: "AppTests", dependencies: )
]
)
Ahora en la terminal en el directorio raíz projectName/ ejecuta:
vapor update -y
Puede tardar un poco en buscar la dependencia, pero al terminar deberías tener una estructura de proyecto como esta:
projectName/
├── Package.swift
├── Sources/
│ ├── App/
│ │ ├── Controllers/
│ │ │ └── UserController.swift
│ │ ├── Models/
│ │ │ └── User.swift
│ │ ├── Routes/
│ │ │ └── Routes.swift
│ │ └── Setup/
│ │ ├── Config+Setup.swift
│ │ └── Droplet+Setup.swift
│ └── Run/
├── Tests/
├── Config/
├── Resources/
├── Public/
├── Dependencies/
└── Products/
¡Si ahora cmd+r o run deberíamos poder acceder a la ruta /user 😊!
Configura tu proyecto para usar PostgreSQL
Ahora todo lo que necesitamos es un archivo de configuración que contenga la información de nuestra base de datos. Crea una nueva carpeta dentro de Config/ y llámala secrets/ para que todos nuestros archivos de configuración sensibles no sean rastreados por git.
Dentro de Config/secrets/ crea un archivo y llámalo postgresql.json e inserta la siguiente configuración:
{
"hostname": "127.0.0.1",
"user": "martinlasek", // use your own mac user
"password": "",
"database": "mycooldb",
"port": 5432
}
NOTA: Para conocer tu usuario de mac ejecuta lo siguiente en la terminal: whoami
A continuación le diremos a fluent que utilice postgresql como driver. En Config/fluent.json:
{
... "driver": "postgresql", ...
}
Por último añadiremos el PostgreSQLProvider dentro de Setup/Config+Setup.swift:
import LeafProvider
import FluentProvider
import PostgreSQLProvider // addedextension Config {
public func setup() throws {
try setupProviders()
try setupPreparations()
} private func setupProviders() throws {
try addProvider(LeafProvider.Provider.self)
try addProvider(FluentProvider.Provider.self)
try addProvider(PostgreSQLProvider.Provider.self) // added
} private func setupPreparations() throws {
preparations.append(User.self)
}
}
¡Nuestro último cmd+r o run y refresh de /user y listo! Has configurado con éxito tu proyecto para utilizar una base de datos postgresql 🎉🚀🎉