0
我遇到了問題,我無法理解在其他地方找到解決方案。事情是,當我試圖加載架構與使用PostgreSQL加載模式之後的Rails語法錯誤
load "#{Rails.root}/db/sctructure.sql"
錯誤出現。 postgresql版本是9.5.1,pg gem是0.8.1。 正如我所能理解的,pg gem無法識別轉儲文件的註釋。 你有沒有遇到類似的東西?
SyntaxError: /Users/user/Documents/workspace/app/db/structure.sql:2: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
-- PostgreSQL database dump
^
/Users/user/Documents/workspace/app/db/structure.sql:5: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
-- Dumped from database version 9.5.1
^
/Users/user/Documents/workspace/app/db/structure.sql:5: unexpected fraction part after numeric literal
-- Dumped from database version 9.5.1
^
/Users/user/Documents/workspace/app/db/structure.sql:6: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
-- Dumped by pg_dump version 9.5.1
^
/Users/user/Documents/workspace/app/db/structure.sql:6: unexpected fraction part after numeric literal
-- Dumped by pg_dump version 9.5.1
^
/Users/user/Documents/workspace/app/db/structure.sql:17: syntax error, unexpected tLABEL
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
^
/Users/user/Documents/workspace/app/db/structure.sql:17: syntax error, unexpected ':', expecting end-of-input
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
的structure.sql文件的一部分:
-- PostgreSQL database dump
--
-- Dumped from database version 9.5.1
-- Dumped by pg_dump version 9.5.1
SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;
--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
--
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
SET search_path = public, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--
-- Name: accounts; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE accounts (
id integer NOT NULL,
name character varying,
logo character varying,
website character varying,
subdomain character varying,
active boolean,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE accounts_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE accounts_id_seq OWNED BY accounts.id;
--
-- Name: addresses; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE addresses (
id integer NOT NULL,
location_id integer,
location_type character varying,
street character varying,
number character varying,
zip character varying,
city character varying,
country character varying,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: addresses_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE addresses_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: addresses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE addresses_id_seq OWNED BY addresses.id;
--
-- Name: administrators; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE administrators (
id integer NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: administrators_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE administrators_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: administrators_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE administrators_id_seq OWNED BY administrators.id;
--
-- Name: agreements; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE agreements (
id integer NOT NULL,
employee_id integer,
client_id integer,
contract_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: agreements_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE agreements_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: agreements_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE agreements_id_seq OWNED BY agreements.id;
--
-- Name: api_authorizations; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE api_authorizations (
id integer NOT NULL,
authorizable_id integer,
authorizable_type character varying,
client_id character varying,
client_secret character varying,
access_token character varying,
access_expires_at timestamp without time zone,
download_token character varying,
token_type character varying,
scope character varying,
refresh_token character varying,
refresh_expires_at timestamp without time zone,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: api_authorizations_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE api_authorizations_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: api_authorizations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE api_authorizations_id_seq OWNED BY api_authorizations.id;
--
-- Name: billings; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE billings (
id integer NOT NULL,
user_id integer,
bank_account_number character varying,
bic character varying,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: billings_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE billings_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: billings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE billings_id_seq OWNED BY billings.id;
--
-- Name: clients; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE clients (
id integer NOT NULL,
external_id character varying,
url_digest character varying,
employee_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: clients_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE clients_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: clients_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE clients_id_seq OWNED BY clients.id;
--
-- Name: companies; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE companies (
id integer NOT NULL,
name character varying,
revenue numeric(15,2),
employee_number integer,
sector character varying,
foundation_date date,
tax_number character varying,
vat_id character varying,
total_salaries numeric(15,2),
client_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: companies_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE companies_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: companies_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE companies_id_seq OWNED BY companies.id;
--
-- Name: contacts; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE contacts (
id integer NOT NULL,
honorific integer,
title character varying,
first_name character varying,
last_name character varying,
birth_date date,
telephone character varying,
user_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: contacts_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE contacts_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: contacts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE contacts_id_seq OWNED BY contacts.id;
--
-- Name: contract_categories; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE contract_categories (
id integer NOT NULL,
name character varying,
contract_group_id integer,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: contract_categories_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE contract_categories_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: contract_categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
ALTER SEQUENCE contract_categories_id_seq OWNED BY contract_categories.id;
--
-- Name: contract_groups; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE contract_groups (
id integer NOT NULL,
name character varying,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);
--
-- Name: contract_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE contract_groups_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
--
-- Name: contract_groups_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
--
有沒有什麼辦法可以在我的模型中加載db/structure.sql文件? – marinoszak
您是否嘗試過'rake db:schema:load'? –
我已經嘗試過,但我認爲db:schema:load不加載structure.sql文件。它僅適用於schema.rb,還是我錯了?在我寫的應用程序中,我有多個租戶,當我創建新租戶時,我想更改search_path並加載structure.sql文件。 – marinoszak