Add custom schema handling for gocoder (#601)

This commit is contained in:
Zoe Roux 2024-08-22 00:01:37 +02:00 committed by GitHub
commit 63e7aac754
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 20 additions and 7 deletions

View File

@ -61,7 +61,8 @@ export const SnackbarProvider = ({ children }: { children: ReactElement | ReactE
return;
}
addPortal("snackbar", <Snackbar {...top} />);
const { key, ...props } = top;
addPortal("snackbar", <Snackbar key={key} {...props} />);
timeout.current = setTimeout(() => {
removePortal("snackbar");
updatePortal();

View File

@ -19,7 +19,7 @@
*/
import Svg, { type SvgProps, Path } from "react-native-svg";
import { useYoshiki } from "yoshiki";
import { useYoshiki } from "yoshiki/native";
/* export const KyooLogo = (props: SvgProps) => ( */
/* <Svg viewBox="0 0 128 128" {...props}> */

View File

@ -26,4 +26,7 @@ POSTGRES_PASSWORD=
POSTGRES_DB=
POSTGRES_SERVER=
POSTGRES_PORT=5432
# (the schema "gocoder" will be used)
# Default is gocoder, you can specify "disabled" to use the default search_path of the user.
# If this is not "disabled", the schema will be created (if it does not exists) and
# the search_path of the user will be ignored (only the schema specified will be used).
POSTGRES_SCHEMA=gocoder

View File

@ -191,6 +191,8 @@ func getVideoKeyframes(path string, video_idx uint32, kf *Keyframe) error {
pts, flags := x[0], x[1]
// true if there is no keyframes (e.g. in a file w/o video track)
// can also happen if a video has more packets than frames (so the last packet
// is emtpy and has a N/A pts)
if pts == "N/A" {
break
}

View File

@ -24,21 +24,28 @@ type MetadataService struct {
func NewMetadataService() (*MetadataService, error) {
con := fmt.Sprintf(
"postgresql://%v:%v@%v:%v/%v?application_name=gocoder&search_path=gocoder&sslmode=disable",
"postgresql://%v:%v@%v:%v/%v?application_name=gocoder&sslmode=disable",
url.QueryEscape(os.Getenv("POSTGRES_USER")),
url.QueryEscape(os.Getenv("POSTGRES_PASSWORD")),
url.QueryEscape(os.Getenv("POSTGRES_SERVER")),
url.QueryEscape(os.Getenv("POSTGRES_PORT")),
url.QueryEscape(os.Getenv("POSTGRES_DB")),
)
schema := GetEnvOr("POSTGRES_SCHEMA", "gocoder")
if schema != "disabled" {
con = fmt.Sprintf("%s&search_path=%s", con, url.QueryEscape(schema))
}
db, err := sql.Open("postgres", con)
if err != nil {
fmt.Printf("Could not connect to database, check your env variables!")
return nil, err
}
_, err = db.Exec("create schema if not exists gocoder")
if err != nil {
return nil, err
if schema != "disabled" {
_, err = db.Exec(fmt.Sprintf("create schema if not exists %s", schema))
if err != nil {
return nil, err
}
}
driver, err := postgres.WithInstance(db, &postgres.Config{})